C 中,如果指標換了被指向的東西,那被指向的原來的東西(是被 new 出來的)所佔的記憶體會立刻被釋放嗎?

時間 2021-05-10 19:32:22

1樓:高博遠

malloc,new ,new 等,都是從heap memory申請記憶體。

對應的需要在不使用的時候用free,delete,delete進行釋放記憶體。

如果不釋放申請過的記憶體,則構成memory leaks.

since c++11 ISO標準出現,使用裸指標是最蠢的選擇。。

unique_ptr

;shared_ptr

;weak_ptr

;int

main

()//這樣子搞就不會存在記憶體洩露。在這個大括號的地方p就被處理了。

return0;}

2樓:Xi Yang

C++除了作用域析構之外,沒有啥自動機制。指標變數的行為和C是一樣的,沒有任何魔法。所以:

class Foo {};

Foo* generate_foo()

int main()

3樓:

童鞋你這洩了額,請使用shared_ptr,請區分好堆疊記憶體,乙個合格的程式設計師,洩了的話好丟人的親,自己退出之後留給作業系統給清理掉了洩的東東就像和妹紙羞羞了第二天拍拍屁股走人不負責任的親。

4樓:

如果能被自動delete掉,那我們還需要"delete"幹嘛?那不是成了C#了。用C++就要規規矩矩的用C++。

5樓:

如果不能,原來//new出來的東西就永遠也不能再delete掉了嗎?

正確,這就叫做「記憶體洩漏」。

當然,標準的解法是使用 std::shared_ptr 之類,但那就是另乙個問題了。

C 指標「指向緊鄰物件所佔空間的下乙個位置」是什麼意思?

張擘 作者寫這幾種情況表示的是指標在生命週期內,所有可能的狀態,它的值會是哪些,就這麼簡單。eg int int 那麼這個指標 解引用 就是 就是指向緊鄰物件所佔空間的下乙個位置,但是他解引用會是什麼呢,不確定的。 李小明 尾後迭代器那種.就比如int ia 100 取乙個陣列的最後元素的後乙個指標...

設計出來的東西被嫌棄,如何自我安慰?

仰淵 辣雞隊友,知不知道什麼是審美 老子看過的圖比你吃過的飯還多 上的什麼野雞大學 我這裡怎麼不好看了 我最美你們都是辣雞 呵呵嫌棄我,我上傳到網頁這個圖月入過萬 給你丟一本提高審美的書 你懂設計嗎 清源 其實你這種都很正常,做設計哪有不改的道理,你覺得心裡不平衡,那是因為你沒有把問題想清楚,其實大...

你有哪些東西是被年齡帶走的?

武子alex 年齡見長,朋友 家人 同事都在,愈發孤獨與寂寞 沉穩 平靜 簡單,極簡的冷淡 籃球 釣魚 下棋,也都在,某知道,這些都是暫時的 星語心路 新一年,又一歲,帶來了嶄新的希望,也帶走了那些留不住的時光 珍貴的頭髮 好胃口 深度睡眠 可以通宵蹦躂的身體 怎麼吃也吃不胖的新陳代謝 過夜不忘的記...