Windows 使用者常遇到:「0X???????? 指令引用的 0x00000000 記憶體,該記憶體不能 written」,隨後程式被強制關閉。這真的是 Windows 不穩定嗎?本文帶你拆解底層邏輯。
程式呼叫 OS API 申請記憶體(動態分配),成功則傳回位址指標,失敗則傳回 0(NULL 指標)。若程式未檢查傳回值,直接把 0 當成有效指標繼續讀寫,就會觸碰系統保護的「中斷描述符表」(位址 0x00000000),被 OS 保護機制攔截並終止程式,彈出上述錯誤。
分配失敗常見於:系統長期運行、安裝大量軟體/病毒、系統檔案被修改、記憶體不足等情境。
程式邏輯錯誤:忘記申請就使用、或已釋放記憶體卻繼續訪問(Use-after-free)。此時指標不一定是 0,錯誤位址會是隨機值。特徵是可在特定操作序列下重現。
這類錯誤多為應用程式品質問題,而非 Windows 本身不穩定。保持系統乾淨、及時更新、使用成熟軟體,能大幅降低發生機率。