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

內(nèi)存不能存為READ的幾個(gè)原因

一般出現(xiàn)這個(gè)現(xiàn)象有兩個(gè)方面 , 一是硬件 , 即內(nèi)存方面有問題 。二是軟件 , 這就有多方面的問題了 。
1、微軟IE緩沖溢出漏洞引起
2、內(nèi)存或虛擬內(nèi)存地址使用沖突造成程序的運(yùn)行需要分配一定的內(nèi)存地址給程序使用 , 當(dāng)程序結(jié)束時(shí)釋放留出空間讓給新的程序使用 , win是多任務(wù)的系統(tǒng)有時(shí)前程序未結(jié)束 又有新的任務(wù)開始到底要多少內(nèi)存或虛擬內(nèi)存來保證我們同時(shí)運(yùn)行的工作任務(wù)呢?也許win在這個(gè)問題上沒弄好 , 所以有此錯(cuò)誤常常發(fā)生 , 一般運(yùn)行大型軟件或多媒體后出現(xiàn)這種情況
3、劣質(zhì)內(nèi)存條也會(huì)出現(xiàn)這個(gè)問題一般來說 , 內(nèi)存出現(xiàn)問題的可能性并不大 , 主要方面是:內(nèi)存條壞了、內(nèi)存質(zhì)量有問題 , 還有就是2個(gè)不同牌子不同容量的內(nèi)存混插 , 也比較容易出現(xiàn)不兼容的情況 , 同時(shí)還要注意散熱問題 , 特別是超頻后 。你可以使用MemTest這個(gè)軟件來檢測(cè)一下內(nèi)存 , 它可以徹底的檢測(cè)出內(nèi)存的穩(wěn)定度 。假如你是雙內(nèi)存 , 而且是不同品牌的內(nèi)存條混插或者買了二手內(nèi)存時(shí) , 出現(xiàn)這個(gè)問題 , 這時(shí) , 你就要檢查是不是內(nèi)存出問題了或者和其它硬件不兼容 。
4、微軟WINDOWS系統(tǒng)的漏洞 , windows把內(nèi)存地址0X00000000到0X0000ffff指定為分配null指針的地址范圍,如果程序試圖訪問這一地址 , 則認(rèn)為是錯(cuò)誤 。c/c編寫的程序通常不進(jìn)行嚴(yán)格的錯(cuò)誤檢查 , 當(dāng)采用malloc來分配內(nèi)存而可供分配的地址空間不夠的情況下返回null指針 。但是代碼不檢查這種錯(cuò)誤 , 認(rèn)為地址分配已經(jīng)成功 , 于是就訪問0X00000000的地址 , 于是就發(fā)生內(nèi)存違規(guī)訪問 , 同時(shí)該進(jìn)程被終止 。ASCII字符填充組成的pif文件時(shí)會(huì)出現(xiàn)以下情況:一個(gè)非法的pif文件(用ascii字符""x""填充)至少要369字節(jié) , 系統(tǒng)才認(rèn)為是一個(gè)合法的pif文件 , 才會(huì)以pif的圖標(biāo)[pifmgr.dll,0]顯示 , 才會(huì)在屬性里有程序、字體、內(nèi)存、屏幕等內(nèi)容 。而且僅僅當(dāng)一個(gè)非pif文件的大小是369字節(jié)時(shí)察看屬性的“程序頁時(shí) , 不會(huì)發(fā)生程序錯(cuò)誤 , 哪怕是370字節(jié)也不行 。當(dāng)對(duì)一個(gè)大于369字節(jié)的非法pif文件察看屬性的“程序頁時(shí) , Explorer會(huì)出錯(cuò) , 提示:""***""指令引用的""***""內(nèi)存 。該內(nèi)存不能為""read"" , 問題出在pif文件的16進(jìn)制地址:0x00000181[0x87]0x00000182[0x01]和 0x00000231[0xC3]0x00000232[0x02]即使是一個(gè)合法pif文件 , 只要改動(dòng)這四處的任意一處 , 也會(huì)引起程序錯(cuò)誤 。而只要把0x00000181和0x00000182的值改為[0xFF][0xFF] , 那么其它地址任意更改都不會(huì)引起錯(cuò)誤 。
5、可能沒有完全正確安裝apache服務(wù) , 且啟動(dòng)了它的原故; 把服務(wù)中OracleOraHomeXXHTTPServer改成停止
6、應(yīng)用程序沒有檢查內(nèi)存分配失敗程序需要一塊內(nèi)存用以保存數(shù)據(jù)時(shí) , 就需要調(diào)用操作系統(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)存地址也就是編程中的“指針 。內(nèi)存不是永遠(yuǎn)都招之即來、用之不盡的 , 有時(shí)候內(nèi)存分配也會(huì)失敗 。當(dāng)分配失敗時(shí)系統(tǒng)函數(shù)會(huì)返回一個(gè)0值 , 這時(shí)返回值“0已不表示新啟用的指針 , 而是系統(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è)值是給它分配的可用指針 , 繼續(xù)在之后的運(yùn)行中使用這塊內(nèi)存 。真正的0地址內(nèi)存區(qū)保存的是計(jì)算機(jī)系統(tǒng)中最重要的“中斷描述符表 , 絕對(duì)不允許應(yīng)用程序使用 。在沒有保護(hù)機(jī)制的操作系統(tǒng)下(如DOS) , 寫數(shù)據(jù)到這個(gè)地址會(huì)導(dǎo)致立即死機(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)文件之后 。

推薦閱讀