C 記憶體空間管理

2022-01-19 07:37:45 字數 502 閱讀 3377

【規則1】用malloc或new申請記憶體之後,應該立即檢查指標值是否為null,防止使用指標值為null的記憶體,可以在函式入口處斷言檢測。

【規則2】不要忘記為陣列或動態記憶體賦初值(比如calloc比malloc就要好),指標初始化為null(c++中為0)。

【規則3】避免陣列或指標下標越界,特別

當心發生「多1」或者"少1"

的操作。

【規則4】動態記憶體的申請和釋放必須配對,防止記憶體洩露,具體為malloc/calloc/realloc和free配對,new和delete以及delete配對。

【規則5】用free或者delete釋放記憶體後,應立即將指標設定為null(c++中為0),防止產生「野指標」、"懸垂指標"。

【規則6】遇到不懂得問題及時debug,一般的蟲子

debug一下就灰飛煙滅了,一切bug都是浮雲而已

C 記憶體空間

乙個c 程式編譯後占用的記憶體分為如下幾個部分 棧 由編譯器自動分配釋放,存放函式的引數值,區域性變數的值。在乙個程序中,位於使用者虛擬位址空間頂部的是使用者棧,編譯器用它來實現函式的呼叫。堆 由程式設計師分配和釋放,若程式設計師不釋放,則程式結束時被os 存放由new,malloc分配的記憶體,可...

c 記憶體空間

題目 若char是一位元組,int是4位元組,指標型別是4位元組,如下 class ctest virtual void mem fun private char m chdata int m ndata static char s chdata char ctest s chdata 0 靜態成員...

c 記憶體空間

乙個可執行程式指令碼可以分為3個基本段,段,資料段,bss段 unix下可以使用size命令檢視可執行檔案的段大小資訊,size a.out header text 資料data bss 2 資料段.data 存放編譯階段就能確定的資料,可讀寫 3 段.text 段通常指用來存放執行d 的一塊儲存區...