動態記憶體分配講解

2021-07-30 23:10:28 字數 656 閱讀 7784

動態記憶體分配在乙個堆區;

非靜態放在乙個棧;

1。malloc函式:函式原型 void *malloc(undigned int size)

注意:引數不能為負值,返回值為所分配的區域的第乙個位元組的位址;

2. calloc 函式 :函式原型 void *(undigned n, unsigned size)

作用:在記憶體中分配n個長度為size的連續空間。動態一維陣列;

3.free函式:函式原型 void free(void *p);

作用:釋放指標變數p所指向的動態空間,使這部分能重新被其他變數使用。

p應是最近一次呼叫calloc或者malloc函式的返回值。

4。realloc 函式原型void *realloc(void *p, unsigned int size);

作用:如果已經通過malloc 函式或者calloc函式獲得了動態空間,想要改變其大小,可以使用realloc函式重新分配。

就是將p指標所指向的動態空間大小改為size。p值不變。

//使用 型別加大小  pt=(int *)malloc(100);

#include #include void check(int *p)

int main()

動態記憶體分配

在c 中建立乙個物件時,我們必須要為這個物件申請一塊記憶體,而且要用建構函式對這塊記憶體進行初始化。c 中的new和delete相對於c的庫函式malloc和free在這方面有很大的優勢,所以我們主要講的是運算子new和delete。當用new來建立乙個物件時,它會自動在堆裡為物件分配記憶體並且為這...

動態記憶體分配

為什麼使用動態記憶體分配?c語言中的一切操作都是基於記憶體的 變數和陣列都是記憶體的別名,如何分配這些記憶體由編譯器在編譯期間決定 定義陣列的時候必須指定陣列唱的 而陣列長度是在編譯期就必須決定的 需求 程式執行的過程中,可能需要使用一些額外的記憶體空間 malloc和free malloc和fre...

動態記憶體分配

c的儲存類別有4種 自動的 auto 靜態的 statics 暫存器的 register 外部的 extern 全域性變數時分配在記憶體中的靜態儲存區 靜態區域性變數屬於靜態儲存類別,在靜態儲存區內分配儲存單元,是在編譯時賦初值的,只賦初值一次,在程式執行時它已有初值,以後每次呼叫函式時不再重新賦初...