我已經使用QT Creator創建了一個C++對象數組,這個對象設置了一個簡單的益智遊戲的網格。當一個遊戲會話完成時,我想開始一個新的遊戲,我用操作符delete刪除數組的內存使用情況,所以我防止任何內存泄漏。但是,由於我的數組是全局的,並且在每次新遊戲會話中都會動態地重新渲染它,這是否會導致陣列不再可用?我需要重新認識它嗎?如何從內存中刪除指針並在C++中稍後恢復它們
1
A
回答
2
我猜你的「全球性」是指向你初始化點菜陣列...
Data* p;
您以後初始化:
p = new Data[n];
p[0] = get_first_value();
...
一個遊戲,你可以刪除後它:
delete[] p;
當你準備開始一個新的遊戲,你可以再次使用它 - 相同的聲明 - 通過分配我噸至解決新分配的內存:
p = new Data[n];
p[0] = get_first_value();
...
的n
值不必每場比賽一樣,如果出於某種原因你決定你需要更多或更少的數據。
5
是的。整個使用delete
的要點是告訴計算機:「嘿,我以前使用過這個內存,但我不再需要它了,永遠不要做任何你想要的東西。」
然後計算機可以回收該內存用於任何它認爲合適的目的。
換句話說,如果你做需要再次使用內存,不delete
吧!
相關問題
- 1. c#我如何設置按鈕ID並在稍後刪除它?
- 2. c#如何創建按鈕並稍後通過ID刪除它
- 3. NULL指針,並刪除它
- 4. 如何刪除node_modules並在離子2項目中恢復它們
- 5. 如何保存幀分離器位置並在稍後恢復?
- 6. 刪除指針是否刪除它指向的內存?
- 7. 如何在HashMap中存儲方法指針並調用它們
- 8. 如何將POJO保存到SQLite中並讓它們恢復?
- 9. 從可觀察集合中刪除項並稍後刪除
- 10. 在swift中,如何在SKScene被刪除後讓內存恢復正常?
- 11. 如何在android中保存(永久)文件並稍後恢復數據?
- 12. 從C++的鏈表中刪除指針
- 13. 如何從解析中的指針數組中刪除指針?
- 14. (Visual C++)刪除指針後動態分配內存不是有效指針
- 15. 蟒蛇解除綁定/禁用鍵綁定後點擊並稍後恢復它
- 16. 如何從std :: vector中恢復內存?
- 17. 在Java EE項目中,刪除我的類之後,我無法恢復它們?
- 18. 如何存儲多個數組並指向它們的指針
- 19. 如何緩存圖像並稍後在EaselJS中使用它?
- 20. C++重新指定指針然後刪除它
- 21. 如何停止Scrapy CrawlSpider並在稍後恢復停用?
- 22. 在c/C++中用函數指針模仿OO,如何存儲它們?
- 23. c + +刪除指針
- 24. C++刪除指針
- 25. 在svn中,我可以恢復更改並稍後擱置它嗎?
- 26. 刪除它後C++指針然後給出值
- 27. 在C++中刪除void *指針
- 28. 在C++中刪除空指針
- 29. 在C++中刪除一個指針
- 30. 在JavaScript中存儲執行狀態?你能稍後恢復嗎?
沒有看到你的動態分配,全局數組等,很難知道你在說什麼。你能舉一個你正在談論的問題的最簡單的例子,並澄清你的問題嗎? – CoryKramer
到底如何聲明數組?如果你在堆上聲明它(用'new'),那麼是的,你必須重新聲明它;如果你在堆棧中聲明它(沒有'new'),那麼調用'delete'會導致你的問題比內存泄漏更嚴重。 – Beta
是的,它是一個指針數組:QPushButton * box [256] –