C語言中基本記憶體錯誤與解決

2021-10-02 11:06:41 字數 387 閱讀 1001

一、記憶體為分配成功卻被呼叫

使用前檢查指標是否為null

二、記憶體分配成功,但未初始化便被引用

原因有兩種:

注意:建立陣列時不要忘了賦初值,賦零值也不可省略

三、記憶體分配成功並且已初始化,記憶體越界

特別注意的就是在使用for迴圈中,迴圈次數出現問題會出現多一少一的情況,會導致陣列操作的越界

四、忘記釋放記憶體,造成記憶體洩漏

動態記憶體的申請和釋放必須配對,程式中的malloc和free的個數一定相同(new和delete也是一樣的道理)

五、釋放記憶體後卻繼續使用

C語言中記憶體分配

一 static在c語言裡面可以用來修飾變數,也可以用來修飾函式。1 先看用來修飾變數的時候。變數在c語言裡面可分為存在全域性資料區 棧和堆裡。其實我們平時所說的堆疊是棧而不是堆,不要弄混。例如 在file.c中 int a int main int b int c int malloc sizeo...

C語言中的記憶體分配與釋放

對c語言一直都是抱著學習的態度,很多都不懂,今天突然被問道c語言的記憶體分配問題,說了一些自己知道的,但感覺回答的並不完善,所以才有這篇筆記,總結一下c語言中記憶體分配的主要內容。剛剛在一篇博文看到乙個簡單的問題 code1 char tostr intmain code2 char tostr i...

C 常見記憶體錯誤與解決方法

發生記憶體錯誤是件非常麻煩的事情。編譯器不能自動發現這些錯誤,通常是在程式執行時才能捕捉到。而這些錯誤大多沒有明顯的症狀,時隱時現,增加了改錯的難度。有時使用者怒氣沖沖地把你找來,程式卻沒有發生任何問題,你一走,錯誤又發作了。常見的記憶體錯誤及其對策如下 記憶體分配未成功,卻使用了它。有三種情況 1...