由于这里说的:How to use delete with a variable pointed to by two pointers? 一个只能删除一次,然后所有的指针就不会工作,但下面的代码:如何使用一个变量使用删除指向C++中两个指针
#include<iostream>
using namespace std;
int main(){
string * str1 = new string("abc");
string * str2 = str1;
cout<< *str2 <<endl;
delete str1;
str1 = NULL;
cout<< *str2<<endl;
}
输出是:
abc
abc
那么,怎么回事?
未定义行为,这就是 –
欢迎来到未定义行为的神奇世界 – StoryTeller
您正在取消引用指向已删除内存的指针,这是未定义的行为(即任何事情都可能发生)。 – 101010