为什么不能玩消消乐?

2个月前 (10-19 21:13)阅读1回复0
东乐
东乐
  • 管理员
  • 注册排名3
  • 经验值87590
  • 级别管理员
  • 主题17518
  • 回复0
楼主

  0X000000该内存不克不及为read的处理办法,一般来说,电脑硬件是很不容易坏的。内存呈现问题的可能性其实不大(除非你的内存实的是杂牌的一塌徒地),次要方面是:1。内存条坏了(二手内存情况居多)、2。利用了有量量问题的内存,3。内存插在主板上的金手指部门尘埃太多。

  4。利用差别品牌差别容量的内存,从而呈现不兼容的情况。5。超频带来的散热问题。你能够利用MemTest 那个软件来检测一下内存,它能够彻底的检测出内存的不变度。

二、若是都没有,那就从软件方面排除毛病了。

先说原理:内存有个存放数据的处所叫缓冲区,当法式把数据放在缓冲区,需要操做系统供给的“功用函数”来申请,若是内存分配胜利,函数就会将所新开拓的内存区地址返回给应用法式,应用法式就能够通过那个地址利用那块内存。

  那就是“动态内存分配”,内存地址也就是编程中的“光标”。内存不是永久都招之即来、用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0值,那时返回值“0”已不暗示新启用的光标,而是系统向应用法式发出的一个通知,告知呈现了错误。做为应用法式,在每一次申请内存后都应该查抄返回值能否为0,若是是,则意味着呈现了毛病,应该采纳一些办法挽救,那就加强了法式的“强健性”。

  若应用法式没有查抄那个错误,它就会根据“思维惯性”认为那个值是给它分配的可用光标,持续在之后的施行中利用那块内存。实正的0地址内存区贮存的是计算机系统中最重要的“中断描述符表”,绝对不允许应用法式利用。在没有庇护机造的操做系统下(如DOS),写数据到那个地址会招致立即当机,而在强健的操做系统中,如Windows等,那个操做会马上被系统的庇护机造捕捉,其成果就是由操做系统强行封闭出错的应用法式,以避免其错误扩大。

  那时候,就会呈现上述的内存不克不及为“read”错误,并指出被引用的内存地址为“0x00000000“。内存分配失败毛病的原因良多,内存不敷、系统函数的版本不婚配等都可能有影响。因而,那种分配失败多见于操做系统利用很长时间后,安拆了多种应用法式(包罗无意中“安拆”的病毒法式),更改了大量的系统参数和系统档案之后。

在利用动态分配的应用法式中,有时会有如许的情况呈现:法式筹算读写一块“应该可用”的内存,但不知为什么,那个意料中可用的光标已经失效了。有可能是“忘记了”向操做系统要求分配,也可能是法式本身在某个时候已经登记了那块内存而“没有留意”等等。登记了的内存被系统收受接管,其拜候权已经不属于该应用法式,因而读写操做也同样会触发系统的庇护机造,诡计“违法”的法式独一的下场就是被操做末行施行,收受接管全数资本。

  计算机世界的法令仍是要比人类有效和严厉得多啊!像如许的情况都属于法式本身的BUG,你往往可在特定的操做挨次下重现错误。无效光标纷歧定老是0,因而错误提醒中的内存地址也纷歧定为 “0x00000000”,而是其它随机数字。

若是您觉得准确或者采用的话,费事给我好评哦,谢谢。

0
回帖

为什么不能玩消消乐? 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息