相信不少兄弟都碰着过该内存不能为“read”的错误提示。但愿以能对各人有所辅佐。
运行某些措施的时候,有时会呈现内存错误的提示,然后该措施就封锁。
“0x????????”指令引用的“0x????????”内存。该内存不能为“read”。
“0x????????”指令引用的“0x????????”内存,该内存不能为“written”。
以上的环境相信各人都应该见到过,甚至说一些网友因为不爽于这个常常呈现的错误提示而屡屡重装系统。相信普通用户应该不会领略那些巨大的十六进制代码。
呈现这个现象有方面的,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。
一:先说说硬件:
一般来说,电脑硬件是很不容易坏的。内存呈现问题的大概性并不大(除非你的内存真的是杂牌的一塌徒地),主要方面是:1。内存条坏了(二手内存环境居多)、2。利用了有质量问题的内存,3。内存插在主板上的金手指部门尘埃太多。4。利用差异品牌差异容量的内存,从而呈现不兼容的环境。5。超频带来的散热问题。你可以利用MemTest 这个软件来检测一下内存,它可以彻底的检测出内存的不变度。
二、假如都没有,那就从软件方面解除妨碍了。
先说道理:内存有个存放数据的处所叫缓冲区,当措施把数据放在缓冲区,需要操纵系统提供的“成果函数”来申请,假如内存分派乐成,函数就会将所新开发的内存区地点返回给应用措施,应用措施就可以通过这个地点利用这块内存。这就是“动态内存分派”,内存地点也就是编程中的“光标”。
内存不是永远都招之即来、用之不尽的,有时候内存分派也会失败。当分派失败时系统函数会返回一个0值,这时返回值“0”已不暗示新启用的光标,而是系统向应用措施发出的一个通知,奉告呈现了错误。作为应用措施,在每一次申请内存后都应该查抄返回值是否为0,假如是,则意味着呈现了妨碍,应该采纳一些法子挽救,这就加强了措施的“结实性”。若应用措施没有查抄这个错误,它就会凭据“思维惯性”认为这个值是给它分派的可用光标,继承在之后的执行中利用这块内存。真正的0地点内存区储存的是计较机系统中最重要的“间断描写符表”,绝对不答允应用措施利用。
在没有掩护机制的操纵系统下(如DOS),写数据到这个地点会导致当即当机,而在结实的操纵系统中,如Windows等,这个操纵会顿时被系统的掩护机制捕捉,其功效就是由操纵系统强行封锁堕落的应用措施,以防备其错误扩大。这时候,就会呈现上述的内存不能为“read”错误,并指出被引用的内存地点为“0x00000000“。内存分派失败妨碍的原因许多,内存不足、系统函数的版本不匹配等都大概有影响。因此,这种分派失败多见于操纵系统利用很长时间后,安装了多种应用措施(包罗无意中“安装”的病毒措施),变动了大量的系统参数和系统档案之后。
在利用动态分派的应用措施中,有时会有这样的环境呈现:措施试图读写一块“应该可用”的内存,但不知为什么,这个预料中可用的光标已经失效了。有大概是“健忘了”向操纵系统要求分派,也大概是措施本身在某个时候已经注销了这块内存而“没有寄望”等等。
注销了的内存被系统接纳,其会见权已经不属于该应用措施,因此读写操纵也同样会触发系统的掩护机制,诡计“违法”的措施独一的下场就是被操纵终止执行,接纳全部资源。计较机世界的法令照旧要比人类有效和严厉得多啊!像这样的环境都属于措施自身的BUG,你往往可在特定的操纵顺序下重现错误。无效光标不必然老是0,因此错误提示中的内存地点也不必然为“0x00000000”,而是其它随机数字。
首先发起:
1、 查抄系统中是否有木马或病毒。这类措施为了节制系统往往不认真任地修改系统,从而导致操纵系统异常。泛泛应增强信息安详意识,对来历不明的可执行措施绝欠好奇。
2、 更新操纵系统,让操纵系统的安装措施从头拷贝正确版本的系统档案、批改系统参数。有时候操纵系统自己也会有BUG,要留意安装官方刊行的进级措施。
3、 只管利用最新正式版本的应用措施、Beta版、试用版城市有BUG。
4、 删除然后从头建设 Winnt/System32/Wbem/Repository 文件夹中的文件:在桌面上右击我的电脑,然后单击打点。 在"处事和应用措施"下,单击处事,然后封锁并遏制 Windows Management Instrumentation 处事。 删除 Winnt/System32/Wbem/Repository 文件夹中的所有文件。(在删除前请建设这些文件的备份副本。) 打开"处事和应用措施",单击处事,然后打开并启动 Windows Management Instrumentation 处事。当处事从头启动时,将基于以下注册表项中所提供的信息从头建设这些文件: HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/WBEM/CIMOM/Autorecover MOFs