我有一個指向某些數據的指針。現在我創建了一個類似的指針。現在這個新的指針被分配給舊的指針。如果我刪除舊的會發生什麼?當我們將一個指針指向NULL時會發生什麼?
A* a = new A();
A* b = a;
a = NULL;
「a」和「b」會發生什麼?
而且,如果我做以下的事情:
A* a = new A();
A* b = a;
delete a;
而且我也想知道,當我們分配爲NULL會發生什麼指針。
A* a = new A();
a = NULL;
做了仍然指向一些內存或者它指向什麼?
它指向地址爲0x00000000的存儲器(或64位機器的0x0000000000000000 :)) – sehe
@sehe:不,它指向NULL,根據架構不同,它可能是也可能不是0x0。 – Hasturkun
@Hasturkun:FUD。在C++中,NULL **是** 0(來自馬嘴:http://www2.research.att.com/~bs/bs_faq2.html#null) – sehe