您現在的位置: 18luck新利全站下载 >> 管理信息化>> 信息化知識>> 資料信息

Windows內存出錯的解決方案(doc 10頁)

所屬分類:
信息化知識
文件大小:
38 KB
下載地址:
相關資料:
window, 內存, 解決方案
Windows內存出錯的解決方案(doc 10頁)內容簡介

一、應用程序沒有檢查內存分配失敗

  程序需要一塊內存用以儲存數據時,就需要使用操作係統提供的「功能函數」來申請,如果內存分配成功,函數就會將所新開辟的內存區地址返回給應用程序,應用程序就可以通過這個地址使用這塊內存。這就是「動態內存分配」,內存地址也就是編程中的「光標」。內存不是永遠都招之即來、用之不盡的,有時候內存分配也會失敗。當分配失敗時係統函數會返回一個0值,這時返回值「0」已不表示新啟用的遊標,而是係統向應用程序發出的一個通知,告知出現了錯誤。作為應用程序,在每一次申請內存後都應該檢查返回值是否為0,如果是,則意味著出現了故障,應該采取一些措施挽救,這就增強了程序的「健壯性」。若應用程序沒有檢查這個錯誤,它就會按照「思維慣性」認為這個值是給它分配的可用遊標,繼續在之後的執行中使用這塊內存。

  真正的0地址內存區儲存的是計算機係統中最重要的「中斷描述符表」,絕對不允許應用程序使用。在沒有保護機製的操作係統下(如DOS),寫數據到這個地址會導致立即當機,而在健壯的操作係統中,如Windows等,這個操作會馬上被係統的保護機製捕獲,其結果就是由操作係統強行關閉出錯的應用程序,以防止其錯誤擴大。這時候,就會出現上述的「寫內存」錯誤,並指出被引用的內存地址為「0x00000000」。內存分配失敗故障的原因很多,內存不夠、係統函數的版本不匹配等都可能有影響。因此,這種分配失敗多見於操作係統使用很長時間後,安裝了多種應用程序(包括無意中「安裝」的病毒程序),更改了大量的係統參數和係統檔案之後。


..............................

Baidu
map