Delphi 調試bug日誌 一個很難纏的內存報錯

業務系統運行中會隨機報錯內存read 00000000
用二分法對代碼進行依次屏蔽,找到出錯代碼大致範圍。
具體原因是用zeromemory對一個結構數組中的值進行清空操作時獲取內存大小sizeof漏寫下標。。。。

錯誤代碼:zeromemory(@arr[i],sizeof(arr)).
正確代碼:zeromemory(@arr[i],sizeof(arr[i])).

錯誤代碼執行後會清空超範圍的內存,導致內存報錯。

此錯誤原因調試查找過程曲折,僅作記錄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章