delete[] 时segmentation fault问题

string str1="hello";
string* str=new string[1];
str=&str1;
cout<<*str<<endl;
delete [] str;
最后delete[]时提示segmentation fault,求指导。
环境ubuntu14+code::blocks12
最新回答
酸酸de欢乐

2021-05-16 10:08:49

string str1="hello";
string* str=new string[1]; //str作为一个指针指向一个新开辟的内存位置
str=&str1; //这里一赋值,str指向了str1
delete []str ; //这里释放时,不是释放原申请的内存了,而是想释放 hello所在的内存,所以core了
我已长发及屁股

2022-02-05 03:07:35

str已经=&str1了,和new出来的东西毫无关系,当然不能用delete了。
我不清楚你的string是个什么,如果是个值类型,str[0]=str1可以吗?