大家帮解决下

来源:百度知道 编辑:UC知道 时间:2024/05/10 19:10:50
我有个程序现在以前能用 现在一用就出现应用程序错误
0x0052ffa指令引用的0x0065f554内存。该内存不能为read
怎么回事

{转}
>运行某些程序的时候,有时会出现内存错误的提示,然后该程序就关闭。> “0x????????”指令引用的“0x????????”内存。该内存不能为“read”。> “0x????????”指令引用的“0x????????”内存,该内存不能为“written”。> 不知你出现过类似这样的故障吗?(0x后面内容有可能不一样。)> 一般出现这个现象有方面的,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。>1、微软IE缓冲溢出漏洞引起>2、内存或虚拟内存地址使用冲突造成 程序的运行需要分配一定的内存地址给程序使用,当程序结束时释放留出空间让给新的程序使用,win是多任务的系统 有时前程序未结束 又有新的任务开始 到底要多少内存或虚拟内存来保证我们同时运行的工作任务呢?也许win在这个问题上没弄好,所以有此错误常常发生,一般运行大型软件或多媒体后出现这种情况>
3、劣质内存条也会出现这个问题> 一般来说,内存出现问题的可能性并不大,主要方面是:内存条坏了、内存质量有问题,还有就是2个不同牌子不同容量的内存混插,也比较容易出现不兼容的情况,同时还要注意散热问题,特别是超频后。你可以使用MemTest这个软件来检测一下内存,它可以彻底的检测出内存的稳定度。> 假如你是双内存,而且是不同品牌的内存条混插或者买了二手内存时,出现这个问题,这时,你就要检查是不是内存出问题了或者和其它硬件不兼容。>4、微软WINDOWS系统的漏洞,>windows把内存地址0X00000000到0X0000ffff指定为分配null指针的地址范围,如果程序试图访问这一地址,则认为是错误。c/c++编写的程序通常不进行严格的错误检查,当采用malloc来分配内存而可供分配的地址空间不够的情况下返回null指针。但是代码不检查这种错误,认为地址分配已经成功,于是就访问0X00000000的地址,于是就发生内存违规访问,同时该进程被终止。>ASCII字符填充组成的pif文件时会出现以下情况:
一个非法的pif文件(用ascii字符&aposx&apos填充)至少要369字节,系统才认为是一个合法的pif文件,才会以pif的图标[pifmgr.dll,0]显示,才