動態記憶體及相關函式

2021-09-11 22:42:07 字數 870 閱讀 2438

malloc —— 申請記憶體

calloc —— 初始化為0

realloc —— 修改記憶體大小(擴大,縮小)

free —— 釋放記憶體,記憶體洩漏

malloc

int *arr = (int ) malloc (nsizeof(int)) ;

malloc函式只調出申請的空間,返回所調出空間的首位址,需強轉成需要的資料型別;

calloc

動態申請100整型單元,並且每個單元值為0

int*arr = (int )malloc(100sizeof(int));

for(int i=0;i<100;i++)//

等同於int *arr = (int ) calloc (100,sizeof(int));//把陣列初始化為0

注:memset(arr,1,100sizeof(int));//memset同樣可以將陣列置0,但這個函式僅限設0

realloc

發現原來申請的arr空間不足,申請更大的空間

int *brr = (int )malloc(200sizeof(int));//建立更大的空間

for(int i=0;i<100;i++)//複製原資料

free(arr);//釋放原記憶體

//更新位址

arr = brr;

brr = null;

等同於arr = (int * ) realloc(arr,200*sizeof(int));//**,arr為原位址,後面為申請的新的記憶體位元組數

free

使用free釋放未被使用的記憶體空間

0629動態記憶體分配相關

new表示式相關 new 表示式的操作序列如下從空閒儲存區分配物件然後用括號內的值初始化該物件 為從空閒儲存區分配物件new 表示式呼叫庫操作符new 前面的new 表示式與下列 序列大體上等價 int ival 0 建立乙個用 0 初始化的int 物件 int pi ival 現在指標指向這個物件...

c 動態記憶體管理相關知識

1.c語言動態記憶體管理 c語言使用 malloc calloc realloc free 進行動態記憶體管理 void test 1 malloc函式在記憶體的動態儲存區中分配一塊長度為 size 位元組的連續區域,返回該區域的位址,不初始化。2 calloc函式與 malloc 函式相似,不同的...

malloc函式 動態記憶體分配

malloc 向系統申請分配指定size個位元組的記憶體空間。返回型別是 void 型別。void 表示未確定型別的 指標。c,c 規定,void 型別可以 強制轉換 為任何其它型別的指標。原型 extern void malloc unsigned int num bytes 標頭檔案 在tc2....