[問題] 使用new的記憶體釋放問題
各位版友好
我想請問一下有關new 和 delete的問題
例如下面function
void function_1 (){
int *tmp = new int;
}
請問此function_1被呼叫執行後,使用new做出來的記憶體空間是否會被自動release掉?
我原本是認為,因為*tmp是function級的變數,因此function_1結束後*tmp這個用來存放
指標的空間會被release掉,因此它所指向的記憶體空間(new出來的記憶體)也會被放掉.
但後來想想好像不太對,因為C++也不像JAVA一樣有自動清除記憶體的功能.
我是想問說,在使用new時,若沒有配會delete,new出來的空間有可能由系統release掉嗎?
像是程式結束之類的.或是其實程式結束後記憶體依然沒有釋放?
但是因為我試過多次跑程式,再去看記憶體使用量,似乎也沒有增加的跡像.
題外話
會這麼問其實是因為,看了很多使用new的程式,似乎都沒有特別去做delete
不知道這是因為寫程式的人沒有做到正確記憶體釋放..或是這是可以接受的用法
請各位版友不吝指教,謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.46.228.50
→
07/26 18:46, , 1F
07/26 18:46, 1F
推
07/26 18:50, , 2F
07/26 18:50, 2F
→
07/26 18:50, , 3F
07/26 18:50, 3F
→
07/26 18:51, , 4F
07/26 18:51, 4F
推
07/26 19:47, , 5F
07/26 19:47, 5F
→
07/26 19:49, , 6F
07/26 19:49, 6F
→
07/26 19:50, , 7F
07/26 19:50, 7F
推
07/26 20:08, , 8F
07/26 20:08, 8F
→
07/26 20:09, , 9F
07/26 20:09, 9F
→
07/26 20:13, , 10F
07/26 20:13, 10F
→
07/26 20:15, , 11F
07/26 20:15, 11F
推
07/27 09:53, , 12F
07/27 09:53, 12F
→
07/27 09:53, , 13F
07/27 09:53, 13F
→
07/27 09:54, , 14F
07/27 09:54, 14F
→
07/27 09:54, , 15F
07/27 09:54, 15F
→
07/27 09:55, , 16F
07/27 09:55, 16F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 3 篇):
問題
4
16