函式原型:
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。教材...