引用 | 編輯
ilnan
2006-02-01 20:33 |
樓主
▼ |
||
x0
使用Windows操作系統的人有時會遇到這樣的錯誤信息:「0X????????指令引用的0x00000000記憶體,該記憶體不能written」,然後應用程式被關閉。 如果去請教一些「高手」,得到的回答往往是「Windows就是這樣不穩定」之類的義憤和不屑。 其實,這個錯誤並不一定是Windows不穩定造成的。 本文就來簡單分析這種錯誤的一般原因。 一、應用程式沒有檢查記憶體分配失敗 程序需要一塊記憶體用以儲存資料時,就需要使用操作系統提供的「功能函數」來申請, 如果記憶體分配成功,函數就會將所新開闢的記憶體區位址返回給應用程式, 應用程式就可以通過這個位址使用這塊記憶體。這就是「動態記憶體分配」, 記憶體位址也就是編程中的「游標」。 記憶體不是永遠都招之即來、用之不盡的,有時候記憶體分配也會失敗。 當分配失敗時系統函數會返回一個0值,這時返回值「0」已不表示新啟用的游標, 而是系統向應用程式發出的一個通知,告知出現了錯誤。作為應用程式, 在每一次申請記憶體後都應該檢查返回值是否為0,如果是,則意味著出現了故障, 應該採取一些措施挽救,這就增強了程序的「健壯性」。 若應用程式沒有檢查這個錯誤,它就會按照「思維慣性」認為這個值是給它分配的可用游標, 繼續在之後的執行中使用這塊記憶體。 真正的0位址記憶體區儲存的是電腦系統中最重要的「中斷描述符表」, 絕對不允許應用程式使用。在沒有保護 .. 訪客只能看到部份內容,免費 加入會員 x0
|
引用 | 編輯
秋名最速傳說
2006-02-05 07:14 |
3樓
▲ ▼ |
不好意思喔 我比較笨 看了半天還是不太懂
如果一開機就出現「......0000000x0」記憶體不得為READ 那到底該怎麼辦呢?可以簡單解釋一下嗎?update WINDOWS嗎? x0 |
引用 | 編輯
小判
2006-08-28 08:11 |
4樓
▲ ▼ |
下面是引用秋名最速傳說於2006-02-5 07:14發表的 :那就是更改虛擬記憶體位置吧! 原本預設都在C槽 或許把她更改一下大小 或者移動到其他槽就會好 x0 |