我一直在閱讀有關C++指針的各種問題和答案,但我仍然基本上不理解某些東西。C++在指針範圍結束後訪問堆上的對象
我讀過,指針允許動態內存分配,通過實際上刪除一個對象,直到明確告訴這樣做。這我明白了,但我不明白的是,堆的對象在其指針的作用域結束之後再次被引用。
查看下面的代碼。
{
myClass* x = new myClass();
}
// How to access the object that x points to here?
據我所知,在範圍的端部,x
(指針本身)不再存在,但對象(指針被指向)仍然在堆上存在。
我的問題是:如果指向內存中該地址的指針不再存在,內存中的地址又是如何訪問的?
它不是。這被稱爲內存泄漏。 – NathanOliver
那麼如何在這個範圍之外訪問這個地址?我認爲這是動態內存分配的全部要點? – ImaginaryHuman072889
這就是爲什麼最好使用智能指針 –