首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

耽误大神2分钟,帮忙解决个小疑点

2013-11-14 
耽误大神2分钟,帮忙解决个小问题#includeiostream#include cstringusing namespace stdvoid main(){d

耽误大神2分钟,帮忙解决个小问题
#include<iostream>
#include <cstring>
using namespace std;
void main()
{
double* pt=new double [3];
pt[0]=3.4;
pt[2]=3.3;
pt[1]=2.3;
for (size_t i=0;i<3;++i)
{
cout<<pt[i]<<" ";
}
cout<<endl;
for (int j=0;j<2;++j)
{
cout<<*pt<<" ";
++pt;
}
cout<<endl;
delete [] pt;

  pt=0;
}
代码如上述:编译没问题,运行时弹出如下:
Debug assertion failed!
我知道问题出在第二个循环,开始时,我把循环条件写成:就j<3,后来发现越界了,改成j<2运行时还是有问题!各位指点一下。
[解决办法]

引用:
Quote: 引用:

你已经把指针delete了
delete [] pt;

为何还使用
 pt=0;

你把delete了
delete [] pt;
去掉就没问了。


重新编译了,去掉delete [] pt之后运行正常!呵呵、多谢你的神速回复。


p =NULL; // 不过你在for循环里 移动的p的首地址!会有内存泄漏的!

热点排行