堆區的使用

2021-09-28 19:26:34 字數 548 閱讀 2164

#define _crt_secure_no_warnings

#include#include#includeint *getspace()

for (int i = 0; i < 5; i++)

return p;

}void test01()

//手動在堆區建立的資料,要手動釋放

free(p);

p = null;

}//注意:如果主調函式中沒有給指標分配記憶體,被調函式用同級指標是修飾不到主調函式的

void allocatespace( char *pp)

memset(temp,0,100); //把temp所指的記憶體區域前100個位元組設定成0

strcpy(temp,"hello world");

pp = temp;

}void test02()

//正確做法

void allocatespace2(char **pp)

void test03()

int main()

記憶體的使用 棧區 堆區 靜態區 唯讀區

記憶體的使用感覺好亂啊,需要整理一下!於是參考c primer與網上資源,整理如下 一 綜述 記憶體中的棧區分配的是區域性變數和函式的引數值的空間,棧的生長方向是從高往低的 堆區是向上增長的用於分配程式設計師申請的記憶體空間 比如new 申請的動態記憶體 注意它與資料結構中的堆是兩回事,分配方式倒是...

堆區和棧區

1 棧區 stack 由編譯器自動分配釋放,存放函式的引數值,區域性變數的值等。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由系統 3 全域性區 靜態區static 全域性變數和靜態變數的儲存是放在一塊的,初始化的全域性變數和靜態變數在一塊區域,未初始化的全域性變...

棧區和堆區

注意,這裡所說的堆區和棧區指的是 虛擬 記憶體區域,跟資料結構中的堆疊不一樣。棧區 stack 由編譯器自動分配釋放,存放區域性變數的值 函式呼叫所需要維護的資訊等。棧區必須滿足這樣一條規則 先入棧的資料後出棧 first in last out,filo 堆區 heap 一般由程式設計師分配釋放,...