出现这情况有几个原因,硬件和软件都有可能。先说硬件方面:
电脑硬件一般不容易坏,内存出问题的几率也不大,除非你用的是杂牌内存,或者二手货。主要可能有以下几种情况:1.内存条坏了(特别是二手内存常见);2.用了质量差的内存;3.内存金手指部分积灰严重;4.混插了不同品牌或容量的内存导致不兼容;5.超频后散热不好,温度太高影响稳定性。你可以试试用MemTest这个软件来检测内存,能比较全面地看出内存稳不稳定。
如果硬件没问题,那就要从软件来找原因了:
简单来说,内存有个地方叫缓冲区,程序运行时会往这里放数据。操作系统提供了一些功能函数让程序申请使用内存。如果分配成功,系统就会把这块内存的地址返回给程序,程序就能用这块内存了,这个过程叫动态内存分配,那个地址也可以理解成编程里的光标。
但内存不是无限的,有时候也会分配失败。当失败的时候,系统会返回一个0值,这时候的0不是代表可用的地址,而是告诉程序出错了。好的程序应该在每次申请内存后都检查一下返回值是不是0,如果是的话就说明有问题,程序应该做出处理,这样程序才更稳定。
但如果程序没做这个检查,它就会以为这个0地址是合法的,继续用下去。但实际上,0地址这块内存存的是系统里最重要的中断描述符表,应用程序是不能碰的。在没有保护机制的老系统上(比如DOS),一碰就直接死机。而在Windows这种现代系统里,系统会立刻把你这个出错的程序干掉,防止它继续搞事。这时候你就会看到提示内存不能为read,而且地址是0x00000000,其实就是告诉你用了不该用的地址。
造成内存分配失败的原因很多,比如内存不够、系统版本不对、软件冲突啥的。这种情况通常出现在电脑用久了,装了很多软件(也可能不小心中了毒),改了很多系统设置之后更容易出现这些问题。
你可以先清理下内存条,擦干净再插一遍,最好用单根内存测试下。然后看看是不是软件冲突或者中毒了,实在不行就重装系统试试。
电脑硬件一般不容易坏,内存出问题的几率也不大,除非你用的是杂牌内存,或者二手货。主要可能有以下几种情况:1.内存条坏了(特别是二手内存常见);2.用了质量差的内存;3.内存金手指部分积灰严重;4.混插了不同品牌或容量的内存导致不兼容;5.超频后散热不好,温度太高影响稳定性。你可以试试用MemTest这个软件来检测内存,能比较全面地看出内存稳不稳定。
如果硬件没问题,那就要从软件来找原因了:
简单来说,内存有个地方叫缓冲区,程序运行时会往这里放数据。操作系统提供了一些功能函数让程序申请使用内存。如果分配成功,系统就会把这块内存的地址返回给程序,程序就能用这块内存了,这个过程叫动态内存分配,那个地址也可以理解成编程里的光标。
但内存不是无限的,有时候也会分配失败。当失败的时候,系统会返回一个0值,这时候的0不是代表可用的地址,而是告诉程序出错了。好的程序应该在每次申请内存后都检查一下返回值是不是0,如果是的话就说明有问题,程序应该做出处理,这样程序才更稳定。
但如果程序没做这个检查,它就会以为这个0地址是合法的,继续用下去。但实际上,0地址这块内存存的是系统里最重要的中断描述符表,应用程序是不能碰的。在没有保护机制的老系统上(比如DOS),一碰就直接死机。而在Windows这种现代系统里,系统会立刻把你这个出错的程序干掉,防止它继续搞事。这时候你就会看到提示内存不能为read,而且地址是0x00000000,其实就是告诉你用了不该用的地址。
造成内存分配失败的原因很多,比如内存不够、系统版本不对、软件冲突啥的。这种情况通常出现在电脑用久了,装了很多软件(也可能不小心中了毒),改了很多系统设置之后更容易出现这些问题。
你可以先清理下内存条,擦干净再插一遍,最好用单根内存测试下。然后看看是不是软件冲突或者中毒了,实在不行就重装系统试试。