陣列的封裝

2021-07-03 19:32:22 字數 1647 閱讀 5134

2.1下面的**比較的是malloc,calloc

#include

#include

void main()}}

}}system("pause");

}

注:程式執行結果表明calloc與malloc區別在於前者初始化記憶體資料為0.

2.2 比較calloc 與realloc

realloc功能說明:

1.當前陣列後面的記憶體沒有使用中,就直接拓展變長 ,返回值(記憶體首位址)不變

2.當前陣列後面的記憶體被占用,則先分配新的記憶體塊,返回值(記憶體首位址)改變—->拷貝原來的記憶體—->釋放原來的記憶體

#include

#include

void main()

}

//第一種情況:直接在當前陣列後面拓展記憶體空間

int *p1 = (int *)realloc(p, 80);//變長

if (p1 != null)

//第二種情況:分配新的長度---->拷貝原來的記憶體---->釋放原來的記憶體

int *p2 = (int *)realloc(p, 100000);//變長

if(p2!= null)

system("pause");

}

#include

#include

typedef

struct

array

myarray;

struct queryresult

;void init(myarray* p);//初始化

void reinit(myarray* p);//使用之後重新初始化

void add_element(myarray* p, int num);//增加乙個元素

void add_elements(myarray* p, int *parray, int n);//增加乙個陣列

void print_all(myarray* p);//列印所有的資料

int * find_data(myarray* p, int num);//返回第乙個找到資料的位址

void sort(myarray* p);

void modify(myarray* p, int oldnum, int newnum);//實現修改

void delete_one(myarray* p, int num);//刪除第乙個找到的資料

void delete_all(myarray* p, int num); //刪除所有能找到的資料

struct queryresult find_all(myarray* p, int num);//返回一片記憶體,包含所有找到的元素的首位址

void insert_element(myarray* p, int num, int insertnum, int isfront);//資料插入,1代表前面插入,0代表後面插入

注:實現部分考慮到版權問題,省略。

陣列的封裝

package cn.pcg.util 封裝陣列的工具類,優化陣列的長度。使其長度變得彈性 提供一些增刪的方法 public class myarraybox 清除快取 public void clearcache t newarray 增加的方法 public void add t obv new...

動態陣列類的封裝

標頭檔案 ifndef myarray h define myarray h include using namespace std class array void array free bool array invalidateindex int nindex 引數berase為true時,重繪...

封裝陣列方法

標籤 空格分隔 未分類 push 1 封裝乙個函式,這個函式的名字叫做 push 2 這個函式的引數,第乙個是乙個陣列,第二個以後是任意的資料 3 呼叫這個函式,那麼會把第二個以後的所有引數,依次放到第乙個引數也就是那個陣列的最後乙個位置。4 這個函式返回值,是放入這些資料之後陣列的長度。var a...