C 記憶體管理

2021-09-29 06:31:15 字數 726 閱讀 1745

c在標頭檔案stdlib.h中提供了幾個函式用於記憶體的分配和管理。

名稱描述

void *calloc(int num,int size)

分配num個長度為size的連續記憶體空間、並且每個位元組都初始化

void free(void *address)

釋放位址所指向的記憶體塊

void *malloc(int num)

在堆區分配一塊指定大小的記憶體空間

void realloc(void address int newsize)

重新為address分配記憶體,分配的大小有newsize所指定

void為沒有指定型別的指標、c規定void 型別可以通過強制型別轉換為任何型別的指標

//先定義乙個型別的指標,該指標指向未定義所需記憶體大小的字元

char *description;

//使用malloc()分配

description=(char *)malloc(200*sizeof(char));//注意有強制型別轉換

//重新分配

description=(char *)realloc(description ,100*sizeof(char));

//釋放記憶體空間

free(description);

當程式退出的時候,作業系統會自動釋放所有分配給程式的記憶體。但是使用完畢後隨時釋放是乙個良好的習慣

C 記憶體管理 C 記憶體分類

c 記憶體管理 記憶體分類 moakap 在編寫程式過程中,程式設計師必須清楚程式記憶體的分配機制,合理進行記憶體管理,這樣才能得到高效的程式。同時,如果對c 記憶體分配基本概念不理解,使用不當,一方面浪費了寶貴的記憶體資源,降低了程式執行效率,另一方面還會造成程式中意想不到的錯誤。在 c 程式中,...

C 記憶體管理

在嵌入式系統中使用c 的乙個常見問題是記憶體分配,即對new 和 delete 操作符的失控。具有諷刺意味的是,問題的根源卻是c 對記憶體的管理非常的容易而且安全。具體地說,當乙個物件被消除時,它的析構函式能夠安全的釋放所分配的記憶體。這當然是個好事情,但是這種使用的簡單性使得程式設計師們過度使用n...

c 記憶體管理

這裡對我暫時所了解的記憶體機制做個記錄,以後再補。首先是記憶體分配 記憶體主要分為3個部分 一是從靜態儲存區域分配。編譯時分配好,主要存放全域性變數,static變數,程式結束釋放。二是從堆疊區域分配。函式內區域性變數存放的地方。隨變數生命週期自動釋放。效率較高,但大小有限。三是從記憶體池分配,即從...