由於這裏說的: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