C語言內存四區

常量區

一般是算在全局靜態區,常量區的內容是不能更改的,舉個例子


所以一定要注意這個問題,否則很容易會讓程序掛掉


全局靜態區

全局變量和所有的靜態變量都在這個區內,很好理解


棧區

一般我們定義的變量,只要不是malloc 或者 new 出來的都在棧區,棧區的容量很小,如果在棧區存的東西過多會導致棧溢出


堆區

c語言使用的是malloc ,calloc,relloc   切記:使用完後要即使free 否則會造成內存泄漏

我用一段代碼來表示三種方法的不同


如果我們想分配動態數組類似於下面,想從鍵盤輸入數組的長度,這樣會報錯


如果使用指針malloc內存就可以動態分配數組

int a = 0;
scanf("%d", &a);
int *arrs = (int *)malloc(sizeof(int)*a);

發佈了29 篇原創文章 · 獲贊 32 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章