2.1下面的**比較的是malloc,calloc
#include
#include
void main()}}
}}system("pause");
}
注:程式執行結果表明calloc與malloc區別在於前者初始化記憶體資料為0.![](https://pic.w3help.cc/8de/be5c8f7a9009eb6223e654efb0d7c.jpeg)
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...