C++指针的简单问题
char*a=new char(10);
for(int i(0);i<10;i++)a[i]=i+'a';
for(int i(0);i<10;i++)cout<<a[i];
cout<<endl;
delete []a;
这段代码放在主函数里执行是产生错误的,提示windows已经触发一个断点,原因可能是堆被破坏,也可能是用户在具有焦点时按下了F12。
如果把连个循环去掉,那就没错。
不知道错在哪里了?
[解决办法]
char*a=new char(10);
->
char*a=new char[10];
既然楼主你写下了int i(0),为什么你还会写下new char(10)
你不觉得后者明显有一个跟你想要的功能不一样的解释么
[解决办法]
这种错误提示,首先就猜测是越界
#1楼已指出
另外,i(0)这种初始化式写法的可读性太差,建议能不用就不用
[解决办法]