关于new和delet 的
#include<iostream>
using namespace std;
int main(){
char **p=new char*[2];
p[1]=new char[4];
p[2]=new char[4];
p[1][0]='1';
p[1][1]='\0';
p[2][0]='2';
p[2][1]='\0';
return 0;
}
因为动态分配了三个存储空间p,p[1],p[2],所以在释放时我依次delete了p[1],p[2],[]p,但程序运行错误了。
然后我又试了其它几种方法,好像只要delete了[]p就会出错。
不知应该如何正确操作?
谢谢!
[解决办法]
char **p=new char*[2];
p[1]=new char[4];
p[2]=new char[4];//越界
p[2][0]='2';//如上
p[2][1]='\0';//如上
[解决办法]
p[0] 和 p[1]