日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

Windows內(nèi)存出錯(cuò)的幾個(gè)解決方案

使用Windows操作系統(tǒng)的人有時(shí)會(huì)遇到這樣的錯(cuò)誤信息:

「“0X????????”指令引用的“0x00000000”內(nèi)存 , 該內(nèi)存不能為“read”或“written”」 , 然后應(yīng)用程序被關(guān)閉 。

如果去請(qǐng)教一些「高手」 , 得到的回答往往是「Windows就是這樣不穩(wěn)定」之類的義憤和不屑 。其實(shí) , 這個(gè)錯(cuò)誤并不一定是Windows不穩(wěn)定造成的 。本文就來簡(jiǎn)單分析這種錯(cuò)誤的一般原因 。

一、應(yīng)用程序沒有檢查內(nèi)存分配失敗

程序需要一塊內(nèi)存用以儲(chǔ)存數(shù)據(jù)時(shí) , 就需要使用操作系統(tǒng)提供的「功能函數(shù)」來申請(qǐng) , 如果內(nèi)存分配成功 , 函數(shù)就會(huì)將所新開辟的內(nèi)存區(qū)地址返回給應(yīng)用程序 , 應(yīng)用程序就可以通過這個(gè)地址使用這塊內(nèi)存 。這就是「動(dòng)態(tài)內(nèi)存分配」 , 內(nèi)存地址也就是編程中的「光標(biāo)」 。內(nèi)存不是永遠(yuǎn)都招之即來、用之不盡的 , 有時(shí)候內(nèi)存分配也會(huì)失敗 。當(dāng)分配失敗時(shí)系統(tǒng)函數(shù)會(huì)返回一個(gè)0值 , 這時(shí)返回值「0」已不表示新啟用的游標(biāo) , 而是系統(tǒng)向應(yīng)用程序發(fā)出的一個(gè)通知 , 告知出現(xiàn)了錯(cuò)誤 。作為應(yīng)用程序 , 在每一次申請(qǐng)內(nèi)存后都應(yīng)該檢查返回值是否為0 , 如果是 , 則意味著出現(xiàn)了故障 , 應(yīng)該采取一些措施挽救 , 這就增強(qiáng)了程序的「健壯性」 。若應(yīng)用程序沒有檢查這個(gè)錯(cuò)誤 , 它就會(huì)按照「思維慣性」認(rèn)為這個(gè)值是給它分配的可用游標(biāo) , 繼續(xù)在之后的執(zhí)行中使用這塊內(nèi)存 。

真正的0地址內(nèi)存區(qū)儲(chǔ)存的是計(jì)算機(jī)系統(tǒng)中最重要的「中斷描述符表」 , 絕對(duì)不允許應(yīng)用程序使用 。在沒有保護(hù)機(jī)制的操作系統(tǒng)下(如DOS) , 寫數(shù)據(jù)到這個(gè)地址會(huì)導(dǎo)致立即當(dāng)機(jī) , 而在健壯的操作系統(tǒng)中 , 如Windows等 , 這個(gè)操作會(huì)馬上被系統(tǒng)的保護(hù)機(jī)制捕獲 , 其結(jié)果就是由操作系統(tǒng)強(qiáng)行關(guān)閉出錯(cuò)的應(yīng)用程序 , 以防止其錯(cuò)誤擴(kuò)大 。這時(shí)候 , 就會(huì)出現(xiàn)上述的「寫內(nèi)存」錯(cuò)誤 , 并指出被引用的內(nèi)存地址為「0x00000000」 。內(nèi)存分配失敗故障的原因很多 , 內(nèi)存不夠、系統(tǒng)函數(shù)的版本不匹配等都可能有影響 。因此 , 這種分配失敗多見于操作系統(tǒng)使用很長(zhǎng)時(shí)間后 , 安裝了多種應(yīng)用程序(包括無意中「安裝」的病毒程序) , 更改了大量的系統(tǒng)參數(shù)和系統(tǒng)檔案之后 。

二、應(yīng)用程序由于自身BUG引用了不正常的內(nèi)存光標(biāo)

在使用動(dòng)態(tài)分配的應(yīng)用程序中 , 有時(shí)會(huì)有這樣的情況出現(xiàn):程序試圖讀寫一塊「應(yīng)該可用」的內(nèi)存 , 但不知為什么 , 這個(gè)預(yù)料中可用的光標(biāo)已經(jīng)失效了 。有可能是「忘記了」向操作系統(tǒng)要求分配 , 也可能是程序自己在某個(gè)時(shí)候已經(jīng)注銷了這塊內(nèi)存而「沒有留意」等等 。注銷了的內(nèi)存被系統(tǒng)回收 , 其訪問權(quán)已經(jīng)不屬于該應(yīng)用程序 , 因此讀寫操作也同樣會(huì)觸發(fā)系統(tǒng)的保護(hù)機(jī)制 , 企圖「違法」的程序唯一的下場(chǎng)就是被操作終止執(zhí)行 , 回收全部資源 。計(jì)算機(jī)世界的法律還是要比人類有效和嚴(yán)厲得多??!像這樣的情況都屬于程序自身的BUG , 你往往可在特定的操作順序下重現(xiàn)錯(cuò)誤 。無效光標(biāo)不一定總是0 , 因此錯(cuò)誤提示中的內(nèi)存地址也不一定為「0x00000000」 , 而是其它隨機(jī)數(shù)字 。如果系統(tǒng)經(jīng)常有所提到的錯(cuò)誤提示 , 下面的建議可能會(huì)有說明 :

1.檢視系統(tǒng)中是否有木馬或病毒 。這類程序?yàn)榱丝刂葡到y(tǒng)往往不負(fù)責(zé)任地修改系統(tǒng) , 從而導(dǎo)致操作系統(tǒng)異常 。平常應(yīng)加強(qiáng)信息安全意識(shí) , 對(duì)來源不明的可執(zhí)行程序絕不好奇 。

2.更新操作系統(tǒng) , 讓操作系統(tǒng)的安裝程序重新拷貝正確版本的系統(tǒng)檔案、修正系統(tǒng)參數(shù) 。

有時(shí)候操作系統(tǒng)本身也會(huì)有BUG , 要注意安裝官方發(fā)行的升級(jí)程序 。

3.試用新版本的應(yīng)用程序 。

Mode:

將虛擬內(nèi)存撤換

推薦閱讀