c 中指標與動態記憶體的分配

2021-06-07 04:04:01 字數 460 閱讀 3019

所有的**都是通過dev c++ 4.9.9.2來編寫的              

c++程式中記憶體的分為五個區,分別為棧,堆,自由儲存區,全域性/靜態儲存區和常量儲存區,程式中各個資料儲存在這些記憶體的區域中。

棧區有編譯器自動分配和釋放,存放函式的引數以及區域性變數。

堆區中的記憶體分配和釋放有開發者負責。一般使用運算子new分配記憶體,並用delete釋放記憶體。

自由訪問區和堆相似,但是其記憶體管理一般是通過malloc和free等進行的。

全域性/靜態儲存區中存放的是全域性變數和靜態變數。

常量儲存區儲存的是常量,通常不允許修改。

上面的個分配通過下面**來說明:

#include using namespace std;

int a; //全域性變數,儲存在全域性/靜態儲存區中

int main ()

指標 動態記憶體分配

c 中的動態記憶體分配機制 c 中使用new和delete來完成在堆上對動態記憶體的分配和釋放。注.所有指標都應該被初始化 如果指標指向的動態記憶體被釋放或沒有指向合法的位址,就應該將指標設定為nullptr,否則記憶體洩漏 變數 double pvalue pvalue new double pv...

c語言動態記憶體分配 C 動態記憶體分配

動態記憶體分配 雖然通過陣列就可以對大量的資料和物件進行有效地管理,但是很多情況下,在程式執行之前,我們並不能確切地知道陣列中會有多少個元素。這種情況下,如果陣列宣告過大,就會造成浪費 宣告過小,就會影響處理。在c 中,動態記憶體分配技術可以保證程式在執行過程中按照需要申請適量記憶體,使用後釋放,從...

C和指標 動態記憶體分配

void malloc size t size 分配所需的記憶體空間,並返回乙個指向它的指標。記憶體塊的大小,以位元組為單位。void calloc unsigned int num,unsigned int size 功能 在記憶體的動態儲存區中分配num個長度為size的連續空間,函式返回乙個指...