✔ 最佳答案
會產生這種錯誤的原因有幾種
1. 記憶體模組損毀(硬體)
2. 應用程式沒有檢查記憶體分配失敗(軟體)
3. 應用程式使用了不正常的記憶體指標(軟體)
1.如果是硬體問題,那可以用一些記憶體測試軟體去檢
測出來,如 MemTest
2.當應用程式需要一塊記憶體用來儲存資料時,就會透過系統提
供的 System Call 去跟系統要求一塊記憶體區間,如果記憶體
分配成功,系統會將這塊記憶體區間的位址回傳給應用程式,
而問題發生的原因就在於,當記憶體分配失敗時系統會回傳代
表配置錯誤的 0 值,而如果應用程式沒有去對其做適當的處理
,而以為這是系統分配給他的記憶體位址 0,所以試圖去對它
進行操作,位址 0 的記憶體區間存放的是IDT,不允許被操作
而被作業系統的保護機制攔截下來,而應用程式也會被作業系
統強制終止。如果錯誤訊息指出的位址為 0x00000000,那通常
就是這樣的原因導致的。
3.應用程式試圖去存取一塊它認為是合法的記憶體,而實際上那
塊記憶體區間已經歸還給系統了,或者根本是忘記向系統要求
記憶體區間,那麼該塊記憶體區間的使用權當然也就不屬於該
應用程式,而應用程式試圖去存取,於是,會被保護機制所攔
截下來,而此應用程式也會被強制終止。這種錯誤出現的錯誤
訊息指出的位址則要視欲被違法存取的記憶體位址而定,而並
非一定是 0x00000000。
解決方法
1.
換掉損毀的記憶體
2,3.
(1) 作業系統的 Prefetch(預先讀取以加快載入速度) 技術
導致的問題,將 \WINDOWS\Prefetch\ 裡的 *.pf 檔案
刪除,讓作業系統重新收集程式的位址。這個問題經常
是在做 Ghost 還原之後可
能會發生的問題。
(2) 有些系統檔案可能在安裝某些軟體時被換成了較先前的
版本,如果可以的話,儘量將其更新至官方的最新版本
Ps. 或是...將有問題的程式關閉 DEP 功能(不建議,有興趣可以了解一下再嘗試)
桌面上→[我的電腦] 按右鍵→內容→[進階]→[效能] 的 [設定]
→[資料執行防止]→為所有的 Windows 程式和服務開啟 DEP
[新增]→選擇你要關閉 DEP 功能的應用程式→[確定]→[確定]
,接著在[進階]→[錯誤報告]→停用錯誤報告→取消選取 發生嚴
重錯誤時請通知我→[確定]→[確定]→重新開機
關於 DEP 的官方說明
https://www.microsoft.com/taiwan/technet/security/prodtech/windowsxp/depcnfxp.mspx