動態分配記憶體(學習筆記11)

2021-06-06 11:53:47 字數 708 閱讀 2415

函式原型:

stdlib.h

void *malloc  ( size );//分配size大小的記憶體,返回指向所分配記憶體的指標,分配不成功,返回null

void *calloc(num_element,length_of_element);//分配num_element *length_of_element 大小的記憶體,並初始化    為  0,返回指標

void realloc(*ptr, new_size);//調整已經動態分配好的記憶體的大小

void free(*ptr);//釋放動態分配的記憶體

訪問動態分配的記憶體,可以使用指標,也可用下標:

int *ptr, i;

ptr=malloc(10*sizeof(int));

if(ptr==null)

for(i=0; i<10; i++)

//指標

*ptr++ = 0;

//下標

//ptr[i] = 0;

動態分配記憶體常見錯誤:

1、沒有檢查請求的記憶體是否成功分配,必須先檢查再使用;

2、操作記憶體超出了動態分配記憶體的邊界;

3、free的引數必須是乙個由malloc,calloc,realloc返回的指標;

4、動態分配的記憶體必須整塊一起釋放,釋放了的記憶體不能再使用;

5、當動態分配的記憶體不再需要使用時,應該釋放,避免記憶體洩漏。

C 學習筆記 動態分配記憶體

在c語言中,動態分配記憶體時一般使用malloc 函式,但是對於非內建資料型別 如struct,enum,class等 malloc 與free 無法滿足動態物件的需求,因此c 引入new與delete關鍵字,用來進行記憶體申請與釋放空間。下面是使用 new 運算子來為任意的資料型別動態分配記憶體的...

記憶體動態分配

陣列的元素儲存於記憶體中連續的位置上。當乙個陣列被宣告時,它所需要的內存在編譯時就被分配。但是,你也可以使用動態記憶體分配在執行時為它分配記憶體。malloc所分配的是一塊連續的記憶體。例如,如果請求它分配100個位元組的記憶體,那麼它實際分配的記憶體就是100個連續的位元組,並不會分開位於兩塊或多...

動態分配記憶體

動態記憶體分配即分配記憶體大小在執行時才確定,一般在堆中分配。c語言動態記憶體分配相關的函式。include void malloc size t size malloc的使用比較直接,乙個成功的malloc呼叫返回分配的size大小的記憶體的指標。失敗時返回null並將錯誤 置為enomem。教材...