vc 应用程序错误

来源:百度知道 编辑:UC知道 时间:2024/05/26 15:32:44
运行VC程序时,出现
0x0040199e指令引用的0xcccccccc内存。该内存不能为written。

这是什么意思,该怎么解决呢?
拜托高手们指点指点。谢谢
谢谢“人检”,但我在三台机上运行都出现这种情况,不可能是硬件问题吧。我想我的提问不够具体,我再补充一下。

我的VC程序是
#include <iostream.h>
void main(){
char * name;
cout<<"Please input your name:";
cin>>name;
cout<<"Hello,"<<name<<"!"<<endl;
}

是书中的一个例题,我想试运行看看,结果就出现了之前所述的问题,即
0x0040199e指令引用的0xcccccccc内存。该内存不能为written。

后来,我运行另外一个小程序,就成功了。所以怀疑是不是第一程序有错误,请高手帮忙看看,指点指点,谢谢。

void main(){
char * name; // 这里的问题,没分配内存
cout<<"Please input your name:";
cin>>name; // name没分配内存
cout<<"Hello,"<<name<<"!"<<endl;
}

char *name;改成char *name = new char[32];
或者char name[32];

一般出现这个现象有方面的,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。
1、微软IE缓冲溢出漏洞引起

2、内存或虚拟内存地址使用冲突造成
程序的运行需要分配一定的内存地址给程序使用,当程序结束时释放留出空间让给新的程序使用,win是多任务的系统
有时前程序未结束 又有新的任务开始
到底要多少内存或虚拟内存来保证我们同时运行的工作任务呢?也许win在这个问题上没弄好,所以有此错误常常发生,一般运行大型软件或多媒体后出现这种情况

3、劣质内存条也会出现这个问题
一般来说,内存出现问题的可能性并不大,主要方面是:内存条坏了、内存质量有问题,还有就是2个不同牌子不同容量的内存混插,也比较容易出现不兼容的情况,同时还要注意散热问题,特别是超频后。你可以使用MemTest
这个软件来检测一下内存,它可以彻底的检测出内存的稳定度。
假如你是双内存,而且是不同品牌的内存条混插或者买了二手内存时,出现这个问题,这时,你就要检查是不是内存出问题了或者和其它硬件不兼容。

那就是你的代码有问题咯,关于编程我也不了解!

void main(){
char * name; // 这里的问题,没分配内存
cout<<"Please input your name:";
cin>>name; // name没分配内存