读书人

delete 有关问题

发布时间: 2013-01-22 10:23:54 作者: rapoo

delete 问题
#include <iostream>

using namespace std;

int main()
{
char animal[]="beer";
char* ps;
int n=strlen(animal);

ps = new char(n+1);
if( NULL == ps)
{
cout<<"动态空间申请失败!" << endl;
return 0;
}

strcpy(ps, animal);
*( ps+n ) = '\0';

cout<<ps << endl;

delete [] ps;
return 0;
}

写的小代码,执行到delete那出错,大神们给看看!
[解决办法]
ps = new char(n+1);应该是
ps = new char[n+1];
因为分配空间不足导致越界
[解决办法]


ps = new char[n+1];

[解决办法]
ps = new char(n+1);,改成ps = new char[n+1];

[解决办法]
ps = new char(n+1);这个只是初始化。不是分配数组

读书人网 >C++

热点推荐