程式需記憶體時呼叫OS API申請。成功回傳位址(指標);失敗回傳`0`(NULL)。**正確程式必須檢查回傳值是否為0**。若未檢查直接使用,實際寫入`0x00000000`——此處存放系統核心「中斷描述符表」,受保護模式下被OS捕獲,強制終止程式,彈出「不能 written 0x00000000」。
分配失敗原因:記憶體不足、系統函式版本不符、長期安裝大量軟體/病毒修改系統參數。
程式邏輯錯誤導致指標失效:忘記申請、過早釋放、重複釋放、指標運算越界。無效指標不一定為0,錯誤位址呈隨機值。特定操作序列可重現。
| 現象 | 典型錯誤碼 | 成因 | 對策 |
|---|---|---|---|
| IE頻繁崩潰 | 參考 0x00000000 不能 read | IE緩衝區溢出/Bug | 修復/升級IE、打補丁、Win2000原地升級還原IE5 |
| XP下光盤AutoRun失敗,98正常 | 參考 0x00000078 不能 written | 相容性問題 | 屬性→相容性→Win98/Me模式 |
| RealOne Gold關閉報錯 | 參考 0xffffffff 不能 read | 微軟拼音2003隱藏語言欄衝突 | 關閉前顯示語言欄或切換輸入法 |
| 超級解霸播放失敗 | 隨機位址 不能 read | 播放器版本Bug/編碼器 | 重裝/官網補丁/換播放器 |
| 遊戲啟動Client.dat錯誤 | 參考 0xffffffff 不能 read | 顯卡驅動/DirectX舊版 | 更新顯卡驅動+裝DirectX 9.0c |
| QQ收訊息自動下線 | 參考 0x00303033 不能 written | 惡意代碼利用QQ漏洞 | 升級QQ/打補丁 |