C語言記憶體動態分配與釋放

2021-06-29 12:01:12 字數 664 閱讀 9746

c語言的函式malloc和free

(1) 函式malloc和free在標頭檔案中的原型及引數

void * malloc(size_t size)

動態配置記憶體,大小有size決定,返回值成功時為任意型別指標,失敗時為null。

void  free(void *ptr)

釋放動態申請的記憶體空間,呼叫free()後ptr所指向的記憶體空間被收回,如果ptr指向未知地方或者指向的空間已被收回,則會發生不可預知的錯誤,如果ptr為null,free不會有任何作用。

(2) c語言中典型用法

t為任意資料型別

t *p = ( t * )malloc( sizeof(t) * n)

if(null= =p)

… …//此過程不能改變指標p的指向

free(p);

注意:malloc後通常要對返回值進行判斷,避免發生不必要的錯誤。

#include#includeint main()

{ int len,i,n;

printf("輸入陣列的長度:\n");

scanf("%d",&len);

int *prr=(int *)malloc(sizeof(int)*len);

printf("輸入len個整數:\n");

for(i=0;i

C語言記憶體動態分配與釋放

對於記憶體的分配,主要採用的是標記法。分配方法有兩種,一種是靜態分配,也就是在程式編譯的時候,就完成了對記憶體的分配。例如當乙個陣列在宣告時,指定長度之後,它所需要的內存在編譯時就會被分配。另一種方法是動態分配,動態分配是指程式在執行時為它分配記憶體。分配記憶體的時候,對於已分配的記憶體,作業系統會...

C語言記憶體動態分配與釋放

對於記憶體的分配,主要採用的是標記法。分配方法有兩種,一種是靜態分配,也就是在程式編譯的時候,就完成了對記憶體的分配。例如當乙個陣列在宣告時,指定長度之後,它所需要的內存在編譯時就會被分配。另一種方法是動態分配,動態分配是指程式在執行時為它分配記憶體。分配記憶體的時候,對於已分配的記憶體,作業系統會...

記憶體動態分配與釋放

1 c語言的函式malloc和free 1 函式malloc和free在標頭檔案中的原型及引數 void malloc size t size 動態配置記憶體,大小有size決定,返回值成功時為任意型別指標,失敗時為null。void free void ptr 釋放動態申請的記憶體空間,呼叫fre...