C++程序运行一段时间后出现错误"0x004050f4"指令引用的"0x0000000c"内存.该内存不能为"written",图片如下

且同一段程序若将输入数据的数量减小,则不会出现该错误,能够正常得到结果,本程序是通过文本读入数据,再输出数据到文本的(.txt文本),当然程序中数组的大小是根据最大规模的输入数据设定的,请大家帮忙啦,谢谢!

这是程序的逻辑错误。其实你已经说得很清楚了,数据量小的时候不出错;数据量多了就出错了。这可能是你在程序中分配了超大内存的时候出错的。检查你的程序,从分配内存这方便检查。类似数组、指针等方面。追问

谢谢你的回答,但是提问之前就检查过数组定义了,没有问题,而且是按照最大规模的算例设的,想问下虚拟内存不够是否也会倒致这样的错误,或是有其他一些可能,也请告诉我,我试试看,

追答

是的。你的想法真的很好。如果定义的数据真的很大,超过了空闲的物理内存,那势必要使用硬盘的虚拟空间了,这时,性能的下降是正常的。但是,你这里提示是内存单元不能写,应该是这个内存单元已经被占用,也就是说,你的程序分配了不该被分配的内存。这个又很难理解。因为,如果分配到了虚拟内存,应该是不会出现这个情况的。不知道是不是操作系统的问题。你倒是可以把这个程序拿到别的机器上执行下看看。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-25
一般都是操作了非法的内存空间引起的,比如数组越界,字符串操作超出字符串长度等等,仔细检查代码吧。
第2个回答  2013-04-25
很常见的内存错误,把源码贴出来?

C++程序运行一段时间后出现错误"0x004050f4"指令引用的"0x0000000c"内 ...
这是程序的逻辑错误。其实你已经说得很清楚了,数据量小的时候不出错;数据量多了就出错了。这可能是你在程序中分配了超大内存的时候出错的。检查你的程序,从分配内存这方便检查。类似数组、指针等方面。

"0x007fe3d"指令引用的"0x0000000"内存,该内存不能为read
c\/c++编写的程序通常不进行严格的错误检查,当采用malloc来分配内存而可供分配的地址空间不够的情况下返回null指针。但是代码不检查这种错误,认为地址分配已经成功,于是就访问0X00000000的地址,于是就发生内存违规访问,同时该进程被终止。ASCII字符填充组成的pif文件时会出现以下情况:一个非法的pif文件(用...

"0x0000000c"指令引用的"0x0000000c"内存。该内存不能为"read"
这时候,就会出现上述的“写内存”错误,并指出被引用的内存地址为“0x00000000”。 内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中“安装”的病毒程序),更改了大量的系统参数和系统文件之后。 二、应用程序...

应用程序错误0x0042043a指令引用的0x0000000内存.该内存不能为red
例一:打开IE浏览器或者没过几分钟就会出现”0×70dcf39f”指令引用的”0×00000000〃内存。该内存不能为“read”。要终止程序,请单击“确定”的信息框,单击“确定”后,又出现“发生内部错误,您正在使用的其中一个窗口即将关闭”的信息框,关闭该提示信息后,IE浏览器也被关闭。 解决方法:修复或...

x004020c0指令引用的0x0000000内存不能为read
这时候,就会出现上述的「写内存」错误,并指出被引用的内存地址为「0x00000000」。内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中「安装」的病毒程序),更改了大量的系统参数和系统档案之后。 二、应用程序...

0X04281144指令引用的0X0000000C内存,该内存不能为READ是什么意思...
你好!电脑出现:【该内存不能为read与written】,原因是比较复杂的,请对症下药!【答案原创,引用请说明,原作者:力王历史】!偶然出现!点:【确定或取消】,即可!1。配置错误!【重启,出完电脑品牌后,按F8,安全模式,最后一次正确配置,回车,回车】!2。系统漏洞!【360安全卫士或金山卫士,或...

"0x00441c4c"指令引用的“0x0000000c"内存。该内存不能为"read"这是怎...
这时候,就会出现上述的内存不能为“read”错误,并指出被引用的内存地址为“0x00000000“。内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中“安装”的病毒程序),更改了大量的系统参数和系统...

"0x00509cfd"指令引用的“0x0000000c”内存。该内存不能为“read...
你好 你说的这种情况,一般都是由 系统软件、内存、引起的。1 电脑不心装上了恶意软件,或上网时产生了恶意程序,建议用360 卫士 、金山卫士等软件,清理垃圾,查杀恶意软件,完成后重启电脑,就可能解决。实在不行,重装,还原过系统,可以解决软件引起的问题。2 如果只是运行个别软件或游戏偶尔出现的,...

开机后就会出现0x00e11144指令引用的“0x0000000c”内存。该内存不能...
(1)可能是内存条出现的小问题,关机断电,把内存条拆下清理干净重新安装。必要时更换内存条。(硬件上一般不会出现该问题)【6】软件引起的:(1)如果装的软件多,导致系统混乱或内存溢出出现该错误。安装的软件与系统或其它软件发生冲突,盗版或带病毒的软件,请慎重下载软件,最好使用正版。【这里...

0x0000000指令引用的0x00000000内存。该内存不能为read,要...
您的电脑遇到了内存访问错误,提示“0x0000000指令引用的0x0000000内存不能为read”。这意味着您的计算机试图访问一个它不应访问的内存位置。通常这种问题由以下几种情况引发:一、内存错误原因 1. 软件冲突或BUG:某些软件可能存在缺陷或与系统其他软件发生冲突,导致内存访问出错。2. 驱动问题:...

相似回答
大家正在搜