[/b]現(xiàn)在有很多人在使用donghai制作的電腦公司ghost版的系統(tǒng),經(jīng)常會(huì)出現(xiàn)“0X000000該內(nèi)存不能為read”的對(duì)話框,作者在最新發(fā)布的5。1版本中提到已經(jīng)完美解決了這個(gè)問(wèn)題,但事實(shí)上問(wèn)題依然存在,只是比4。1的版本有所改進(jìn)罷了,如何解決這一煩人的問(wèn)題呢?我們先來(lái)認(rèn)識(shí)一下這個(gè)問(wèn)題吧:
成都創(chuàng)新互聯(lián)是專(zhuān)業(yè)的橫縣網(wǎng)站建設(shè)公司,橫縣接單;提供成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行橫縣網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
p\v!A'^c;tuz#\ f;p1D gd @O1]q`G
出現(xiàn)這個(gè)現(xiàn)象有方面的,一是硬件,即內(nèi)存方面有問(wèn)題,二是軟件,這就有多方面的問(wèn)題了。
/Nz:T'Wk"k VK gG5P5wzv
一:先說(shuō)說(shuō)硬件:
w)v f]? $r9[(|!@R0n1mI:J
一般來(lái)說(shuō),電腦硬件是很不容易壞的。內(nèi)存出現(xiàn)問(wèn)題的可能性并不大(除非你的內(nèi)存真的是雜牌的一塌徒地),主要方面是:1。內(nèi)存條壞了(二手內(nèi)存情況居多)、2。使用了有質(zhì)量問(wèn)題的內(nèi)存,3。內(nèi)存插在主板上的金手指部分灰塵太多。4。使用不同品牌不同容量的內(nèi)存,從而出現(xiàn)不兼容的情況。5。超頻帶來(lái)的散熱問(wèn)題。你可以使用MemTest 這個(gè)軟件來(lái)檢測(cè)一下內(nèi)存,它可以徹底的檢測(cè)出內(nèi)存的穩(wěn)定度。
|'s#l\#@*Kh2r { M3b V"Tohb#c y ^
二、如果都沒(méi)有,那就從軟件方面排除故障了。
~ XA2xaoZ
Md3TC] 先說(shuō)原理:內(nèi)存有個(gè)存放數(shù)據(jù)的地方叫緩沖區(qū),當(dāng)程序把數(shù)據(jù)放在緩沖區(qū),需要操作系統(tǒng)提供的“功能函數(shù)”來(lái)申請(qǐng),如果內(nèi)存分配成功,函數(shù)就會(huì)將所新開(kāi)辟的內(nèi)存區(qū)地址返回給應(yīng)用程序,應(yīng)用程序就可以通過(guò)這個(gè)地址使用這塊內(nèi)存。這就是“動(dòng)態(tài)內(nèi)存分配”,內(nèi)存地址也就是編程中的“光標(biāo)”。內(nèi)存不是永遠(yuǎn)都招之即來(lái)、用之不盡的,有時(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)用程序沒(méi)有檢查這個(gè)錯(cuò)誤,它就會(huì)按照“思維慣性”認(rèn)為這個(gè)值是給它分配的可用光標(biāo),繼續(xù)在之后的執(zhí)行中使用這塊內(nèi)存。真正的0地址內(nèi)存區(qū)儲(chǔ)存的是計(jì)算機(jī)系統(tǒng)中最重要的“中斷描述符表”,絕對(duì)不允許應(yīng)用程序使用。在沒(méi)有保護(hù)機(jī)制的操作系統(tǒng)下(如DOS),寫(xiě)數(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)存不能為“read”錯(cuò)誤,并指出被引用的內(nèi)存地址為“0x00000000“。內(nèi)存分配失敗故障的原因很多,內(nèi)存不夠、系統(tǒng)函數(shù)的版本不匹配等都可能有影響。因此,這種分配失敗多見(jiàn)于操作系統(tǒng)使用很長(zhǎng)時(shí)間后,安裝了多種應(yīng)用程序(包括無(wú)意中“安裝”的病毒程序),更改了大量的系統(tǒng)參數(shù)和系統(tǒng)檔案之后。Io\g1cDN*v
9po$abi}-IN `"^ 在使用動(dòng)態(tài)分配的應(yīng)用程序中,有時(shí)會(huì)有這樣的情況出現(xiàn):程序試圖讀寫(xiě)一塊“應(yīng)該可用”的內(nèi)存,但不知為什么,這個(gè)預(yù)料中可用的光標(biāo)已經(jīng)失效了。有可能是 “忘記了”向操作系統(tǒng)要求分配,也可能是程序自己在某個(gè)時(shí)候已經(jīng)注銷(xiāo)了這塊內(nèi)存而“沒(méi)有留意”等等。注銷(xiāo)了的內(nèi)存被系統(tǒng)回收,其訪問(wèn)權(quán)已經(jīng)不屬于該應(yīng)用程序,因此讀寫(xiě)操作也同樣會(huì)觸發(fā)系統(tǒng)的保護(hù)機(jī)制,企圖“違法”的程序唯一的下場(chǎng)就是被操作終止執(zhí)行,回收全部資源。計(jì)算機(jī)世界的法律還是要比人類(lèi)有效和嚴(yán)厲得多?。∠襁@樣的情況都屬于程序自身的BUG,你往往可在特定的操作順序下重現(xiàn)錯(cuò)誤。無(wú)效光標(biāo)不一定總是0,因此錯(cuò)誤提示中的內(nèi)存地址也不一定為 “0x00000000”,而是其它隨機(jī)數(shù)字。/M{Q8H*t+j3F^ ['j
Y^:[1Y2s7JU 首先建議:w@ Z#@(r'u-w3^$x V
1j#~/~}-Z
1、 檢查系統(tǒng)中是否有木馬或病毒。這類(lèi)程序?yàn)榱丝刂葡到y(tǒng)往往不負(fù)責(zé)任地修改系統(tǒng),從而導(dǎo)致操作系統(tǒng)異常。平常應(yīng)加強(qiáng)信息安全意識(shí),對(duì)來(lái)源不明的可執(zhí)行程序絕不好奇。
Uv)Wy.RQ,?
9PT2b9T[3TH 2、 更新操作系統(tǒng),讓操作系統(tǒng)的安裝程序重新拷貝正確版本的系統(tǒng)檔案、修正系統(tǒng)參數(shù)。有時(shí)候操作系統(tǒng)本身也會(huì)有BUG,要注意安裝官方發(fā)行的升級(jí)程序。
!Te e V#Va 4j,gez\4G.z*O_
3、 盡量使用最新正式版本的應(yīng)用程序、Beta版、試用版都會(huì)有BUG。 wmG?Fea
:z~Xo;Z
4、 刪除然后重新創(chuàng)建 Winnt\System32\Wbem\Repository 文件夾中的文件:在桌面上右擊我的電腦,然后單擊管理。在"服務(wù)和應(yīng)用程序"下,單擊服務(wù),然后關(guān)閉并停止 Windows Management Instrumentation 服務(wù)。 刪除 Winnt\System32\Wbem\Repository 文件夾中的所有文件。(在刪除前請(qǐng)創(chuàng)建這些文件的備份副本。)打開(kāi)"服務(wù)和應(yīng)用程序",單擊服務(wù),然后打開(kāi)并啟動(dòng) Windows Management Instrumentation 服務(wù)。當(dāng)服務(wù)重新啟動(dòng)時(shí),將基于以下注冊(cè)表項(xiàng)中所提供的信息重新創(chuàng)建這些文件: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\CIMOM\Autorecover MOFs
7xc9sl P5m"E.n LUw d M5uJ5?#u0U
下面搜集幾個(gè)例子給大家分析:*A ` GA6EX;}$U
L0u4r'E Gn 例一:IE瀏覽器出現(xiàn)“0x0a8ba9ef”指令引用的“0x03713644” 內(nèi)存,或者“0x70dcf39f”指令引用的“0x00000000”內(nèi)存。該內(nèi)存不能為“read”。要終止程序,請(qǐng)單擊“確定”的信息框,單擊“確定”后,又出現(xiàn)“發(fā)生內(nèi)部錯(cuò)誤,您正在使用的其中一個(gè)窗口即將關(guān)閉”的信息框,關(guān)閉該提示信息后,IE瀏覽器也被關(guān)閉。解決方法:
m l-QKZTe$}/yu
@uS1{ D 1、 開(kāi)始-運(yùn)行窗口,輸入“regsvr32 actxprxy.dll”回車(chē),接著會(huì)出現(xiàn)一個(gè)信息對(duì)話 框“DllRegisterServer in actxprxy.dll succeeded”,確定。再依次運(yùn)行以下命令。(這個(gè)方法有人說(shuō)沒(méi)必要,但重新注冊(cè)一下那些.dll對(duì)系統(tǒng)也沒(méi)有壞處,反正多方下手,能解決問(wèn)題就行。),{3f+\}ejRJA
e2?#k$ecC(P x;b4r`U
regsvr32 shdocvw.dll
'}fjW!jv %x4{Tfe.H SV
regsvr32 oleaut32.dll
br1[*g$Y W~mIC"mBBQ1y
regsvr32 actxprxy.dll
j7t^-?$L9j
~P~y V6M2@.};T p regsvr32 mshtml.dll O#V1C,j'_`wNvad
C-hSDsunu-B
regsvr32 msjava.dll
F^ o0Wt;ult
%X_nQk)]-SP(U7s"Z regsvr32 browseui.dll
C^8^u-djJ(Nv xS*s+h[iA,[
regsvr32 urlmon.dll+tyk5\+lf p(K
6[%jmW{MPhL7K 2、 修復(fù)或升級(jí)IE瀏覽器,同時(shí)打上系統(tǒng)補(bǔ)丁??催^(guò)其中一個(gè)修復(fù)方法是,把系統(tǒng)還原到系統(tǒng)初始的狀態(tài)下。建議將IE升級(jí)到了6.0。9S"Wad j
m^wU0lgJ3G 例二:有些應(yīng)用程序錯(cuò)誤: “0x7cd64998” 指令參考的 “0x14c96730” 內(nèi)存。該內(nèi)存不能為 “read”。解決方法:Win XP的“預(yù)讀取”技術(shù)這種最佳化技術(shù)也被用到了應(yīng)用程序上,系統(tǒng)對(duì)每一個(gè)應(yīng)用程序的前幾次啟動(dòng)情況進(jìn)行分析,然后新增一個(gè)描述套用需求的虛擬“內(nèi)存映像”,并把這些信息儲(chǔ)存到Windows\Prefetch文件夾。一旦建立了映像,應(yīng)用軟件的裝入速度大大提高。XP的預(yù)讀取數(shù)據(jù)儲(chǔ)存了最近8次系統(tǒng)啟動(dòng)或應(yīng)用軟件啟動(dòng)的信息。建議將虛擬內(nèi)存撤換,刪除Windows\Prefetch目錄下所有*.PF文件,讓windows重新收集程序的物理地址。8kp2J4Vu7Z
l(@8P-\8^]6G {OU
例三:在XP下雙擊光盤(pán)里面的“AutoRun.exe”文件,顯示“0x77f745cc”指令引用的“0x00000078”內(nèi)存。該內(nèi)存不能為“written”,要終止程序,請(qǐng)單擊“確定”,而在Windows 98里運(yùn)行卻正常。解決方法:這可能是系統(tǒng)的兼容性問(wèn)題,winXP的系統(tǒng),右鍵“AutoRun.exe”文件,屬性,兼容性,把“用兼容模式運(yùn)行這個(gè)程序”項(xiàng)選擇上,并選擇“Windows 98/Me”。win2000如果打了SP的補(bǔ)丁后,只要開(kāi)始,運(yùn)行,輸入:regsvr32 c:\winnt\apppatch\slayerui.dll。右鍵,屬性,也會(huì)出現(xiàn)兼容性的選項(xiàng)。2P5d B3cdly
i2G;tQ"BlPx b Q%t
例四:RealOne Gold關(guān)閉時(shí)出現(xiàn)錯(cuò)誤,以前一直使用正常,最近卻在每次關(guān)閉時(shí)出現(xiàn)“0xffffffff”指令引用的“0xffffffff”內(nèi)存。該內(nèi)存不能為 “read” 的提示。解決方法:當(dāng)使用的輸入法為微軟拼音輸入法2003,并且隱藏語(yǔ)言欄時(shí)(不隱藏時(shí)沒(méi)問(wèn)題)關(guān)閉RealOne就會(huì)出現(xiàn)這個(gè)問(wèn)題,因此在關(guān)閉RealOne 之前可以顯示語(yǔ)言欄或者將任意其他輸入法作為當(dāng)前輸入法來(lái)解決這個(gè)問(wèn)題。
A{-D;h)DYjj7J
fcH.go$A 例五:我的豪杰超級(jí)解霸自從上網(wǎng)后就不能播放了,每次都提示“0x060692f6”(每次變化)指令引用的“0xff000011”內(nèi)存不能為 “read”,終止程序請(qǐng)按確定。解決方法:試試重裝豪杰超級(jí)解霸,如果重裝后還會(huì),到官方網(wǎng)站下載相應(yīng)版本的補(bǔ)丁試試。還不行,只好換就用別的播放器試試了。 a?z9OK2v3Yxo
6w_'i Z1cBR1x 例六:雙擊一個(gè)游戲的快捷方式,“0x77f5cd0”指令引用“0xffffffff”內(nèi) 存,該內(nèi)存不能為“read” ,并且提示Client.dat程序錯(cuò)誤。解決方法:重裝顯卡的最新驅(qū)動(dòng)程序,然后下載并且安裝DirectX9.0。
J)D"^ i!u'AC8o%x{+?
Ik S.g+Q*f/_ V+Zts8r 例七:一個(gè)朋友發(fā)信息過(guò)來(lái),我的電腦便出現(xiàn)了錯(cuò)誤信息:“0x772b548f”指令引用的“0x00303033”內(nèi)存,該內(nèi)存不能為 “written”,然后QQ自動(dòng)下線,而再打開(kāi)QQ,發(fā)現(xiàn)了他發(fā)過(guò)來(lái)的十幾條的信息。解決方法:這是對(duì)方利用QQ的BUG,發(fā)送特殊的代碼,做QQ出錯(cuò),只要打上補(bǔ)丁或升級(jí)到最新版本,就沒(méi)事了。
(T3L]l;T0Ky O"IJ$be_%N
該內(nèi)存不能為read或written的解決方案關(guān)鍵詞: 該內(nèi)存不能為"read" 該內(nèi)存不能為"written"
4]U%O!~kIr-|u
J!g P[^U 從網(wǎng)上搜索來(lái)的幾篇相關(guān)文章.
|v4Q"H/bG y8n d w8~8MI*o1MX
【文章一】
$]`g2@AT
JRC*e.T%i.W x 使用Windows操作系統(tǒng)的人有時(shí)會(huì)遇到這樣的錯(cuò)誤信息:
x0`J(\j?#`F"n 「“0X????????”指令引用的“0x00000000”內(nèi)存,該內(nèi)存不能為“read”或“written”」,然后應(yīng)用程序被關(guān)閉。
"wkTy)YHu/q uQ^4d9TXb
如果去請(qǐng)教一些「高手」,得到的回答往往是「Windows就是這樣不穩(wěn)定」之類(lèi)的義憤和不屑。其實(shí),這個(gè)錯(cuò)誤并不一定是Windows不穩(wěn)定造成的。本文就來(lái)簡(jiǎn)單分析這種錯(cuò)誤的一般原因。
p[3`u$k,k V^ 一、應(yīng)用程序沒(méi)有檢查內(nèi)存分配失敗
4iF'g NzOn 程序需要一塊內(nèi)存用以?xún)?chǔ)存數(shù)據(jù)時(shí),就需要使用操作系統(tǒng)提供的「功能函數(shù)」來(lái)申請(qǐng),如果內(nèi)存分配成功,函數(shù)就會(huì)將所新開(kāi)辟的內(nèi)存區(qū)地址返回給應(yīng)用程序,應(yīng)用程序就可以通過(guò)這個(gè)地址使用這塊內(nèi)存。這就是「動(dòng)態(tài)內(nèi)存分配」,內(nèi)存地址也就是編程中的「光標(biāo)」。內(nèi)存不是永遠(yuǎn)都招之即來(lái)、用之不盡的,有時(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)用程序沒(méi)有檢查這個(gè)錯(cuò)誤,它就會(huì)按照「思維慣性」認(rèn)為這個(gè)值是給它分配的可用游標(biāo),繼續(xù)在之后的執(zhí)行中使用這塊內(nèi)存。真正的0地址內(nèi)存區(qū)儲(chǔ)存的是計(jì)算機(jī)系統(tǒng)中最重要的「中斷描述符表」,絕對(duì)不允許應(yīng)用程序使用。在沒(méi)有保護(hù)機(jī)制的操作系統(tǒng)下(如DOS),寫(xiě)數(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)上述的「寫(xiě)內(nèi)存」錯(cuò)誤,并指出被引用的內(nèi)存地址為「0x00000000」。內(nèi)存分配失敗故障的原因很多,內(nèi)存不夠、系統(tǒng)函數(shù)的版本不匹配等都可能有影響。因此,這種分配失敗多見(jiàn)于操作系統(tǒng)使用很長(zhǎng)時(shí)間后,安裝了多種應(yīng)用程序(包括無(wú)意中「安裝」的病毒程序),更改了大量的系統(tǒng)參數(shù)和系統(tǒng)檔案之后。
w.u6W-D n,t6M 二、應(yīng)用程序由于自身BUG引用了不正常的內(nèi)存光標(biāo)
h8l/K/\n 在使用動(dòng)態(tài)分配的應(yīng)用程序中,有時(shí)會(huì)有這樣的情況出現(xiàn):程序試突讀寫(xiě)一塊「應(yīng)該可用」的內(nèi)存,但不知為什么,這個(gè)預(yù)料中可用的光標(biāo)已經(jīng)失效了。有可能是「忘記了」向操作系統(tǒng)要求分配,也可能是程序自己在某個(gè)時(shí)候已經(jīng)注銷(xiāo)了這塊內(nèi)存而「沒(méi)有留意」等等。注銷(xiāo)了的內(nèi)存被系統(tǒng)回收,其訪問(wèn)權(quán)已經(jīng)不屬于該應(yīng)用程序,因此讀寫(xiě)操作也同樣會(huì)觸發(fā)系統(tǒng)的保護(hù)機(jī)制,企圖「違法」的程序唯一的下場(chǎng)就是被操作終止執(zhí)行,回收全部資源。計(jì)算機(jī)世界的法律還是要比人類(lèi)有效和嚴(yán)厲得多??!像這樣的情況都屬于程序自身的BUG,你往往可在特定的操作順序下重現(xiàn)錯(cuò)誤。無(wú)效光標(biāo)不一定總是0,因此錯(cuò)誤提示中的內(nèi)存地址也不一定為「0x00000000」,而是其它隨機(jī)數(shù)字。如果系統(tǒng)經(jīng)常有所提到的錯(cuò)誤提示,下面的建議可能會(huì)有說(shuō)明 :df pr*Sxaq4?
@f"i8pCxM
1.檢視系統(tǒng)中是否有木馬或病毒。這類(lèi)程序?yàn)榱丝刂葡到y(tǒng)往往不負(fù)責(zé)任地修改系統(tǒng),
b3G1IA#}7o/bh 從而導(dǎo)致操作系統(tǒng)異常。平常應(yīng)加強(qiáng)信息安全意識(shí),對(duì)來(lái)源不明的可執(zhí)行程序絕不好奇。'GCM[? n+R(nV Z/a }
2.更新操作系統(tǒng),讓操作系統(tǒng)的安裝程序重新拷貝正確版本的系統(tǒng)檔案、修正系統(tǒng)參數(shù)。R j'o5@5d"n!\$z
有時(shí)候操作系統(tǒng)本身也會(huì)有BUG,要注意安裝官方發(fā)行的升級(jí)程序。
kI|/r-S^ 3.試用新版本的應(yīng)用程序。
;^tj-SXrDi ;|#xJ*g$[k
Mode:
kj n.NeN _^/Q 將虛擬內(nèi)存撤換
:s*N;frg 答案:R/FE6?B B t
目前為止是肯定的,也就是如在下次冷天到來(lái)時(shí)亦沒(méi)再發(fā)生,就代表這是主因
m*oe;L5Y"i y0b3s7p,n 追加:y \VS#R(Ni
如果你用 Ghost 恢復(fù) OS 后建議 刪除WINDOWS\PREFETCH目錄下所有*.PF文件因?yàn)樾枳寃indows重新收集程序的物理地址
I.hO.e6K5?;}O 有些應(yīng)用程序錯(cuò)誤 "0x7cd64998" 指令參考的 "0x14c96730" 內(nèi)存。該內(nèi)存不能為 "read"推論是此原因
+V? ]F6`S9o| 源由:J^T\/X.v
Win XP的「預(yù)讀取」技術(shù)
NDv{XG 這種最佳化技術(shù)也被用到了應(yīng)用軟件上,系統(tǒng)對(duì)每一個(gè)應(yīng)用軟件的前幾次啟動(dòng)情況進(jìn)行分析,然后新增一個(gè)描述套用需求的虛擬「內(nèi)存映像」,并把這些信息儲(chǔ)存到 WINDOWSPREFETCH數(shù)據(jù)夾。一旦建立了映像,應(yīng)用軟件的裝入速度大大提高。XP的預(yù)讀取數(shù)據(jù)儲(chǔ)存了最近8次系統(tǒng)啟動(dòng)或應(yīng)用軟件啟動(dòng)的信息。6a5m5o8x.Jh
后敘:2N/J4SN,t}
目前此方法亦是獨(dú)步網(wǎng)絡(luò)的(其碼自己針對(duì)此問(wèn)題查了許久),也是常見(jiàn)問(wèn)題,原本幾乎每天睡前關(guān)閉軟件時(shí)一些程序都會(huì)發(fā)生...read...+j.w0P?^/?
現(xiàn)在就沒(méi)發(fā)生了。
)fGyxUl6g:`P
rTy[,`7a:X 【文章二】
EO.WXA/eA #X:I(le/bOK
運(yùn)行某些程序的時(shí)候,有時(shí)會(huì)出現(xiàn)內(nèi)存錯(cuò)誤的提示(0x后面內(nèi)容有可能不一樣),然后該程序就關(guān)閉。/{7]P%[Zu
“0x????????”指令引用的“0x????????”內(nèi)存。該內(nèi)存不能為“read”。
^#F,{XS+?t8dQ “0x????????”指令引用的“0x????????”內(nèi)存,該內(nèi)存不能為“written”。!q9wgl?'}-s{
不知你出現(xiàn)過(guò)類(lèi)似這樣的故障嗎?
.K }? K}.{5y 一般出現(xiàn)這個(gè)現(xiàn)象有方面的,一是硬件,即內(nèi)存方面有問(wèn)題,二是軟件,這就有多方面的問(wèn)題了。L zey;`y'`$g
下面先說(shuō)說(shuō)硬件:
Lwg*wmRf 一般來(lái)說(shuō),內(nèi)存出現(xiàn)問(wèn)題的可能性并不大,主要方面是:內(nèi)存條壞了、內(nèi)存質(zhì)量有問(wèn)題,還有就是2個(gè)不同牌子不同容量的內(nèi)存混插,也比較容易出現(xiàn)不兼容的情況,同時(shí)還要注意散熱問(wèn)題,特別是超頻后。你可以使用MemTest 這個(gè)軟件來(lái)檢測(cè)一下內(nèi)存,它可以徹底的檢測(cè)出內(nèi)存的穩(wěn)定度。X4H(T]W
假如你是雙內(nèi)存,而且是不同品牌的內(nèi)存條混插或者買(mǎi)了二手內(nèi)存時(shí),出現(xiàn)這個(gè)問(wèn)題,這時(shí),你就要檢查是不是內(nèi)存出問(wèn)題了或者和其它硬件不兼容。5R,}0@J3gp
如果都沒(méi)有,那就從軟件方面排除故障了。$O+}u(p9gH m%N;v4O2A
先簡(jiǎn)單說(shuō)說(shuō)原理:內(nèi)存有個(gè)存放數(shù)據(jù)的地方叫緩沖區(qū),當(dāng)程序把數(shù)據(jù)放在其一位置時(shí),因?yàn)闆](méi)有足夠空間,就會(huì)發(fā)生溢出現(xiàn)象。舉個(gè)例子:一個(gè)桶子只能將一斤的水,當(dāng)你放入兩斤的水進(jìn)入時(shí),就會(huì)溢出來(lái)。而系統(tǒng)則是在屏幕上表現(xiàn)出來(lái)。這個(gè)問(wèn)題,經(jīng)常出現(xiàn)在windows2000和XP系統(tǒng)上,Windows 2000/XP對(duì)硬件的要求是很苛刻的,一旦遇到資源死鎖、溢出或者類(lèi)似Windows 98里的非法操作,系統(tǒng)為保持穩(wěn)定,就會(huì)出現(xiàn)上述情況。另外也可能是硬件設(shè)備之間的兼容性不好造成的。3] ` i(w+xi3?l
下面我從幾個(gè)例子給大家分析:#u JFi,h
例一:打開(kāi)IE瀏覽器或者沒(méi)過(guò)幾分鐘就會(huì)出現(xiàn)"0x70dcf39f"指令引用的"0x00000000"內(nèi)存。該內(nèi)存不能為“read”。要終止程序,請(qǐng)單擊“確定”的信息框,單擊“確定”后,又出現(xiàn)“發(fā)生內(nèi)部錯(cuò)誤,您正在使用的其中一個(gè)窗口即將關(guān)閉”的信息框,關(guān)閉該提示信息后,IE瀏覽器也被關(guān)閉。解決方法:修復(fù)或升級(jí)IE瀏覽器,同時(shí)打上補(bǔ)丁??催^(guò)其中一個(gè)修復(fù)方法是,Win2000自升級(jí),也就是Win2000升級(jí)到Win2000,其實(shí)這種方法也就是把系統(tǒng)還原到系統(tǒng)初始的狀態(tài)下。比如你的IE升級(jí)到了6.0,自升級(jí)后,會(huì)被IE5.0代替。
6g/k2V$Up@Ah SEe 例二:在windows xp下雙擊光盤(pán)里面的“AutoRun.exe”文件,顯示“0x77f745cc”指令引用的“0x00000078”內(nèi)存。該內(nèi)存不能為 “written”,要終止程序,請(qǐng)單擊“確定”,而在Windows 98里運(yùn)行卻正常。解決方法:這可能是系統(tǒng)的兼容性問(wèn)題,winXP的系統(tǒng),右鍵“AutoRun.exe”文件,屬性,兼容性,把“用兼容模式運(yùn)行這個(gè)程序”項(xiàng)選擇上,并選擇“Windows 98/Me”。win2000如果打了SP的補(bǔ)丁后,只要開(kāi)始,運(yùn)行,輸入:regsvr32 c:\winnt\apppatch\slayerui.dll。右鍵,屬性,也會(huì)出現(xiàn)兼容性的選項(xiàng)。9EpH%vJjk
例三:RealOne Gold關(guān)閉時(shí)出現(xiàn)錯(cuò)誤,以前一直使用正常,最近卻在每次關(guān)閉時(shí)出現(xiàn)“0xffffffff”指令引用的“0xffffffff”內(nèi)存。該內(nèi)存不能為 “read” 的提示。解決方法:當(dāng)使用的輸入法為微軟拼音輸入法2003,并且隱藏語(yǔ)言欄時(shí)(不隱藏時(shí)沒(méi)問(wèn)題)關(guān)閉RealOne就會(huì)出現(xiàn)這個(gè)問(wèn)題,因此在關(guān)閉RealOne 之前可以顯示語(yǔ)言欄或者將任意其他輸入法作為當(dāng)前輸入法來(lái)解決這個(gè)問(wèn)題。/c.BC7~+q;[sU
例四:我的豪杰超級(jí)解霸自從上網(wǎng)后就不能播放了,每次都提示“0x060692f6”(每次變化)指令引用的“0xff000011”內(nèi)存不能為 “read”,終止程序請(qǐng)按確定。解決方法:試試重裝豪杰超級(jí)解霸,如果重裝后還會(huì),到官方網(wǎng)站下載相應(yīng)版本的補(bǔ)丁試試。還不行,只好換就用別的播放器試試了。
+W_9RM,?;PB'y 例五:雙擊一個(gè)游戲的快捷方式,“0x77f5cd0”指令引用“0xffffffff”內(nèi) 存,該內(nèi)存不能為“read” ,并且提示Client.dat程序錯(cuò)誤。 解決方法:重裝顯卡的最新驅(qū)動(dòng)程序,然后下載并且安裝DirectX9.0。
v(t(FOFc%S#| 例六:一個(gè)朋友發(fā)信息過(guò)來(lái),我的電腦便出現(xiàn)了錯(cuò)誤信息:“0x772b548f”指令引用的“0x00303033”內(nèi)存,該內(nèi)存不能為 “written”,然后QQ自動(dòng)下線,而再打開(kāi)QQ,發(fā)現(xiàn)了他發(fā)過(guò)來(lái)的十幾條的信息。解決方法:這是對(duì)方利用QQ的BUG,發(fā)送特殊的代碼,做QQ出錯(cuò),只要打上補(bǔ)丁或升級(jí)到最新版本,就沒(méi)事了。
|sn1Z9hyY
L2XwhLp2_ 【原因 解決方法】
Z8P3r\F]-R X
!F#PF'i g6\hH.}2? 1 內(nèi)存條壞了 更換內(nèi)存條fQBQ|;i-{
2 雙內(nèi)存不兼容 使用同品牌的內(nèi)存或只要一條內(nèi)存
flH.vSd? 3 內(nèi)存質(zhì)量問(wèn)題 更換內(nèi)存條
n"ctw)|"R%z 4 散熱問(wèn)題 加強(qiáng)機(jī)箱內(nèi)部的散熱
;XH"U+q F7P+R:_H 5 內(nèi)存和主板沒(méi)插好或其他硬件不兼容 重插內(nèi)存或換個(gè)插槽
,},r*Y8p$zNg 6 硬件有問(wèn)題 更換硬盤(pán)q.ba%^2R m
7 驅(qū)動(dòng)問(wèn)題 重裝驅(qū)動(dòng),如果是新系統(tǒng),應(yīng)先安裝主板驅(qū)動(dòng)"] I2}8[S o7yP j
8 軟件損壞 重裝軟件%A\e.r!A!a4F2q:@
9 軟件有BUG 打補(bǔ)丁或更新到最新版本YM.}7Z(]#{G5V2rO4l
10 軟件和系統(tǒng)不兼容 給軟件打上補(bǔ)丁或是試試系統(tǒng)的兼容模式
0h1p%h \a(k e 11 軟件和軟件之間有沖突 如果最近安裝了什么新軟件,卸載了試試`Ir6@9uOJ;q
12 軟件要使用其他相關(guān)的軟件有問(wèn)題 重裝相關(guān)軟件,比如播放某一格式的文件時(shí)出錯(cuò),可能是這個(gè)文件的解碼器有問(wèn)題
(}'IpO Q3e 13 病毒問(wèn)題 殺毒
Qt#Dpw,m-x 14 殺毒軟件與系統(tǒng)或軟件相沖突 由于殺毒軟件是進(jìn)入底層監(jiān)控系統(tǒng)的,可能與一些軟件相沖突,卸載試試
VM%Nzj 15 系統(tǒng)本身有問(wèn)題 有時(shí)候操作系統(tǒng)本身也會(huì)有BUG,要注意安裝官方發(fā)行的更新程序,象SP的補(bǔ)丁,最好打上.如果還不行,重裝系統(tǒng),或更換其他版本的系統(tǒng)。
p#jI!Y B(T
0XM4yn-^H;?8K"B 〔又一說(shuō)〕
d ZGqZq1A*j h
U![!Q:C`M-|^x 在控制面板的添加/刪除程序中看看你是否安裝了微軟NET.Framework,如果已經(jīng)安裝了,可以考慮卸載它,當(dāng)然如果你以后在其它程序需要NET.Framework時(shí)候,可以再重新安裝。3~5LW,?d
另外,如果你用的是ATI顯卡并且你用的是SP2的補(bǔ)丁(一些ATI的顯卡驅(qū)動(dòng)需要在NET.Framework正常工作的環(huán)境下)。這種情況你可以找一款不需要NET.Framework支持的ATI顯卡驅(qū)動(dòng)。
/XlP"^p!C;I'W:dI 如果以上兩種方法并不能完全解決問(wèn)題,你試著用一下“IE修復(fù)”軟件,并可以查查是否有病毒之類(lèi)的。
Nv2m b_~ Bl9V 〔微軟NET.Framework升級(jí)到1.1版應(yīng)該沒(méi)問(wèn)題了〕
"H`+?;Xh6bU,]~
j%on.jm 〔還有一說(shuō)〕
A!uUE {"JSk WbNxyC;h O
方法一:aQqDza]8K
Y.TU r c0{
微軟新聞組的朋友指點(diǎn):開(kāi)始--運(yùn)行:regsvr32 jscript.dll
e,U4Y(aH0g%?Ju 開(kāi)始--運(yùn)行:regsvr32 vbscript.dll
+WE O xb UYX"t,zp9~l#ISo
不過(guò)沒(méi)解決---但提供了路子-----一次運(yùn)行注冊(cè)所有dll
8cR*cP[uZ vw 搜索查找到方法如下:
K"r u/[!U:~3G2}(Ay/t (e8I${ r!Y:x)Er
運(yùn)行 輸入cmd 回車(chē)在命令提示符下輸入
3~ E"O+G)qCRR$o for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
?Y w$og~2yB b"AO 這個(gè)命令老兄你慢慢輸 輸入正確的話會(huì)看到飛快地滾屏 否則……否則失敗就是沒(méi)這效果。回車(chē)后慢慢等(需要點(diǎn)時(shí)間1-2分鐘) 都運(yùn)行完再打開(kāi)看!~H:V l ],l
e4A[4jv1\/nf 方法二:1`)F2A+I a
這是個(gè)典型問(wèn)題~~~~~引起這個(gè)問(wèn)題的原因很多。一般來(lái)講就是給系統(tǒng)打上補(bǔ)丁和更換內(nèi)存、給內(nèi)存換個(gè)插槽這3種方法來(lái)解決。[系統(tǒng)補(bǔ)丁只要到Microsoft Update網(wǎng)站在線更新就可以了]
"w%R8E9ja\2o 造成這種問(wèn)題的原因很多,不能單純的下結(jié)論,盡量做到以下幾點(diǎn)可能對(duì)你有幫助:v%oK.E-Pq,f#px,e
1。確保使用的是未修改過(guò)的軟件(非漢化、破解版),|}ZW"f,G2g\'M)DB
2。使用改軟件時(shí)盡量不要運(yùn)行其他軟件。(這是個(gè)臨時(shí)文件,可能某些軟件也在使用臨時(shí)文件夾,所以產(chǎn)生干擾)
7Vq5_w+_ bx5ty 3。把那些什么桌面工具,內(nèi)存整理工具通通關(guān)掉(你至少有2個(gè)類(lèi)似的工具在運(yùn)行)”6p n%GjW v8}
h3lV3b0_%nOl b
處理方法:#ks_2js2Be,Y
運(yùn)行regedit進(jìn)入注冊(cè)表, 在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks 下,應(yīng)該只有一個(gè)正常的鍵值"{AEB6717E-7E19-11d0-97EE-00C04FD91972}, 將其他的刪除。
y)ro+J.W3J)V ,K9m:OY*W"f
〔我個(gè)人的最后解決和看法〕
8Vk~I!eh/hR9w ls*nC.beX+]
我今天嘗試了多種辦法,最后我發(fā)現(xiàn)問(wèn)題出在微軟的NET.Framework上面。我升級(jí)了這個(gè)軟件,并打齊了補(bǔ)丁,短暫平安后,有出現(xiàn)“內(nèi)存不能為read”的情況。后來(lái)我受上面文章的啟發(fā),卸載了微軟的NET.Framework1.0和1.1,世界太平了。
)e Of.h\+m:]J E)Q.O\UU
另外:如果是打開(kāi)“我的電腦”、“我的文檔”等的時(shí)候出現(xiàn)上述情況,還有一種可能,就是你的右鍵菜單太臃腫了,此時(shí)只要清理右鍵菜單問(wèn)題就解決了。'b0hl0Ki M2b
--------------------------------------------------------------------------------X9v2O VN e`P
@V;H0tZUr
〔試驗(yàn)的結(jié)果〕 QfK1}5] gMd
6b aS5a$E g
上面的方法,最管用、最徹底的方法是這個(gè):
#d1b9m|_ c+@:m9^H
1n1j?H0`SS6u 運(yùn)行 輸入cmd 回車(chē)在命令提示符下輸入
A@V#N r(Qw4tO^ for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1%[I8F(`-rS/R7Nn8A
G3p,j n!ef
【技巧】如果怕輸入錯(cuò)誤的話,可以復(fù)制這條指令,然后在命令提示框點(diǎn)擊左上角的c:\,使用下面的“編輯-粘貼”功能就不容易輸錯(cuò)了。在飛速滾屏完全靜止之后,別著急啟動(dòng)其他程序,先耐心等一會(huì)兒,因?yàn)榇藭r(shí)dll們還在找位置。直到你的指示燈不閃了再做別的。
因?yàn)槿绻兞康膬?nèi)存發(fā)生逃逸,它的生命周期就是不可知的,其會(huì)被分配到堆上,而堆上分配內(nèi)存不能像棧一樣會(huì)自動(dòng)釋放,為了解放程序員雙手,專(zhuān)注于業(yè)務(wù)的實(shí)現(xiàn),go實(shí)現(xiàn)了gc垃圾回收機(jī)制,但gc會(huì)影響程序運(yùn)行性能,所以要盡量減少程序的gc操作。
1、在方法內(nèi)把局部變量指針?lè)祷?,被外部引用,其生命周期大于棧,則溢出。
2、發(fā)送指針或帶有指針的值到channel,因?yàn)榫幾g時(shí)候無(wú)法知道那個(gè)goroutine會(huì)在channel接受數(shù)據(jù),編譯器無(wú)法知道什么時(shí)候釋放。
3、在一個(gè)切片上存儲(chǔ)指針或帶指針的值。比如[]*string,導(dǎo)致切片內(nèi)容逃逸,其引用值一直在堆上。
4、因?yàn)榍衅腶ppend導(dǎo)致超出容量,切片重新分配地址,切片背后的存儲(chǔ)基于運(yùn)行時(shí)的數(shù)據(jù)進(jìn)行擴(kuò)充,就會(huì)在堆上分配。
5、在interface類(lèi)型上調(diào)用方法,在Interface調(diào)用方法是動(dòng)態(tài)調(diào)度的,只有在運(yùn)行時(shí)才知道。
1、go語(yǔ)言的接口類(lèi)型方法調(diào)用是動(dòng)態(tài),因此不能在編譯階段確定,所有類(lèi)型結(jié)構(gòu)轉(zhuǎn)換成接口的過(guò)程會(huì)涉及到內(nèi)存逃逸發(fā)生,在頻次訪問(wèn)較高的函數(shù)盡量調(diào)用接口。
2、不要盲目使用變量指針作為參數(shù),雖然減少了復(fù)制,但變量逃逸的開(kāi)銷(xiāo)更大。
3、預(yù)先設(shè)定好slice長(zhǎng)度,避免頻繁超出容量,重新分配。
如下的例子,要打印100以?xún)?nèi)能被5整除的數(shù),以panic的方式選擇出來(lái)并打印。
如果用下面的方式,執(zhí)行到第一個(gè)panic就會(huì)跳出for循環(huán)
只能輸出第一個(gè)匹配項(xiàng),然后退出for循環(huán)。
那么如何保證在for循環(huán)處理完panic不退出循環(huán),直到打印完所有滿(mǎn)足條件的數(shù)值?
golang的panic被恢復(fù)后,能繼續(xù)執(zhí)行比recover更早的defer,或者返回到recover函數(shù)的調(diào)用方,然后繼續(xù)執(zhí)行下去。
所以,我們可以把panic和recover放到單獨(dú)的函數(shù)中,然后在for循環(huán)里調(diào)用這個(gè)函數(shù),這個(gè)函數(shù)panic并恢復(fù)后,能返回到調(diào)用方for循環(huán)并繼續(xù)循環(huán)下去。
執(zhí)行結(jié)果是所有0到100的所有符合panic條件的都能正確處理,for循環(huán)沒(méi)有異常退出:
golang的panic屬于非常嚴(yán)重的錯(cuò)誤,一旦panic沒(méi)有recover的話,程序就退出了。一般避免主動(dòng)panic,影響程序穩(wěn)定性。
recover函數(shù)要放在defer里面,并且只能恢復(fù)同一個(gè)goroutine的并且是直接調(diào)用鏈函數(shù)發(fā)生的panic。recover不能恢復(fù)上一層函數(shù)的panic。
問(wèn)題一:計(jì)算機(jī)中的“溢出”到底是什么意思 就是某個(gè)容器裝滿(mǎn)了東西后,再裝就流出來(lái)了.
如水溢出.
關(guān)于“溢出攻擊”我想老一點(diǎn)的黑客都知道,對(duì)于菜鳥(niǎo)就不一定了。那么“溢出攻擊”到底是什么意思呢?
在計(jì)算機(jī)中有個(gè)叫“緩沖區(qū)”的地方,他是用來(lái)存儲(chǔ)用戶(hù)輸入的數(shù)據(jù)的,緩沖區(qū)的長(zhǎng)度是被事先設(shè)定好的,如果用戶(hù)輸入的數(shù)據(jù)超過(guò)了緩沖區(qū)的長(zhǎng)度,那么就會(huì)溢出,而這些溢出的數(shù)據(jù)就會(huì)覆蓋在合法的數(shù)據(jù)上,這就像杯子裝水的道理,水多了杯子裝不下,當(dāng)然就會(huì)溢出咯!緩沖區(qū)溢出漏洞主要是由于許多軟件沒(méi)有對(duì)緩沖區(qū)進(jìn)行檢查而造成。
如果溢出的數(shù)據(jù)是一條像“net user 5616 123/add”這樣的指令,如果執(zhí)行會(huì)怎樣呢?(.....)所以利用緩沖區(qū)溢出進(jìn)行攻擊是一種很好的方法。常見(jiàn)的溢出攻擊如:微軟的MS-04011遠(yuǎn)程緩沖區(qū)溢出漏洞。利用該漏洞就可以獲得對(duì)方的SHELL,而且這個(gè)漏洞也被許多人用來(lái)入侵,成功率很高,不過(guò)現(xiàn)在的人都有點(diǎn)安全意識(shí),都補(bǔ)上了該漏洞,現(xiàn)在很少有這樣漏洞的機(jī)子。
問(wèn)題二:數(shù)控編程中數(shù)據(jù)溢出是什么意思 數(shù)控系統(tǒng)的內(nèi)存是很小的,廣數(shù)928是老系統(tǒng),只能放幾個(gè)程序或十幾個(gè)程序吧,F(xiàn)ANUC內(nèi)存也相當(dāng)有限,所以發(fā)現(xiàn)這種情況沒(méi)什么奇怪的,刪除一些不用的程序就可以了。
問(wèn)題三:c++/c語(yǔ)言關(guān)于數(shù)據(jù)溢出的問(wèn)題 10分 console也有緩沖區(qū)大小的
應(yīng)該是輸出文字太多所以溢出
問(wèn)題四:C語(yǔ)言中溢出是什么意思 1、溢出:
數(shù)據(jù)類(lèi)型超過(guò)了計(jì)算機(jī)字長(zhǎng)的界限而出現(xiàn)的數(shù)據(jù)溢出;
2、溢出可能原因:
當(dāng)應(yīng)用程序讀取用戶(hù)數(shù)據(jù),復(fù)制到應(yīng)用程序開(kāi)辟的內(nèi)存緩沖區(qū)中,卻無(wú)法保證緩沖區(qū)的空間足夠時(shí) (假設(shè)定義數(shù)組int Array[10], 而在調(diào)用時(shí)使用Array[11] 或存放的數(shù)據(jù)超過(guò)int類(lèi)型容量等), 內(nèi)存緩沖區(qū)就可能會(huì)溢出.
3、溢出因素分析:
由于C/C++語(yǔ)言所固有的缺陷,既不檢查數(shù)組邊界,又不檢查類(lèi)型可靠性,且用C/C++語(yǔ)言開(kāi)發(fā)的程序由于目標(biāo)代碼非常接近機(jī)器內(nèi)核,因而能夠直接訪問(wèn)內(nèi)存和寄存器,只要合理編碼,C/C++應(yīng)用程序在執(zhí)行效率上必然優(yōu)于其它高級(jí)語(yǔ)言。然而,恭/C++語(yǔ)言導(dǎo)致內(nèi)存溢出問(wèn)題的可能性也要大許多。
問(wèn)題五:系統(tǒng)數(shù)據(jù)溢出100020什么意思,怎么解決 unsign long 的數(shù)據(jù)可以表示的范圍應(yīng)該是0~4294967295(2^32),也就是10的9次方級(jí)別。%D%A你單用浮點(diǎn)(float)還是屬于單精度的,同樣無(wú)法超越32位機(jī)器限制。%D%A你都搞到10的9次方的平方去了,相當(dāng)于10的18次方,不溢出才怪呢。%D%A如果換成雙精度浮點(diǎn)型(double)應(yīng)該能滿(mǎn)足你的需要了。
問(wèn)題六:那個(gè)計(jì)算機(jī)的數(shù)據(jù)溢出是什么 樓主您好! buffer overflow (english) 緩沖區(qū)溢出(英語(yǔ))The condition wherein the data transferred to a buffer exceeds the storage capacity of the buffer and some of the data verflows into another buffer, one that the data was not intended to go into. Since buffers can only hold a specific amount of data, when that capacity has been reached the data has to flow somewhere else, typically into another buffer, which can corrupt data that is already contained in that buffer. 其中的數(shù)據(jù)轉(zhuǎn)移到一個(gè)緩沖區(qū),超過(guò)緩沖區(qū)和一些數(shù)據(jù)到另一個(gè)緩沖區(qū),該數(shù)據(jù)不打算進(jìn)入verflows的存儲(chǔ)容量。由于緩沖區(qū)只能容納一個(gè)具體的數(shù)據(jù)量,當(dāng)這種能力已達(dá)到數(shù)據(jù)流別處,通常到另一個(gè)緩沖區(qū),這可能會(huì)損壞已在該緩沖區(qū)中的數(shù)據(jù)。 Malicious hackers can launch buffer overflow attacks wherein data with instructions to corrupt a system are purposely written into a file in full knowledge that the data will overflow a buffer and release the instructions into the puter instructions. 惡意黑客可以發(fā)動(dòng)緩沖區(qū)溢出攻擊,將包含破壞系統(tǒng)的數(shù)據(jù)與指令故意寫(xiě)到一個(gè)文件中,這些數(shù)據(jù)將導(dǎo)致一個(gè)緩沖區(qū)溢出,并釋放這些指令到計(jì)算機(jī)指令中。
問(wèn)題七:請(qǐng)問(wèn)為什么數(shù)據(jù)會(huì)溢出? 不是溢出,而是你的e沒(méi)有初始化。
溢出:是指數(shù)據(jù)類(lèi)型超過(guò)了計(jì)算機(jī)字長(zhǎng)的界限而出現(xiàn)的數(shù)據(jù)溢出。
因?yàn)閑沒(méi)有初始化,所以e的值就是原來(lái)改地址存放的值。
問(wèn)題八:顯示數(shù)據(jù)溢出,怎么解決 可以具體指出是什么類(lèi)型的數(shù)據(jù)溢出嗎
問(wèn)題九:C語(yǔ)言數(shù)據(jù)溢出時(shí)的值是負(fù)值嗎 當(dāng)整型數(shù)據(jù)超出取值范圍時(shí) 數(shù)據(jù)呈環(huán)形變化 例如32767 + 1 = -32768 36767 +2 = -32767-32768 -1 = 32767 -32768 - 2 = 32766
理解一下 希望這個(gè)例子能幫助你