[英]Delete all the memory allocated to an object
我正在編寫一個程序,該程序創建從其他人的代碼中借來的數千個類的實例。 例如我有B
類,
class B {
B(int a);
int some_function();
...
};
在我的程序中,我創建了此類的對象:
int main() {
for(int i=0; i<10000; i++) {
B *b = new B(i);
b->some_function();
delete(b);
}
}
但是B
類存在內存泄漏,並在幾次迭代后填充了我的RAM。 程序每次迭代后,是否有任何方法可以刪除分配給此類的所有內存?
PS該類比此示例復雜得多,因此在調試該類之前,我已經考慮了此選項。
不,沒有。 您必須修復該類。
也許B類是從其他類繼承而來的,析構函數不是虛擬的。 你可以看看嗎?
編輯:
要檢查泄漏,我建議安裝valgrind (軟件)。
如何安裝? 在ubuntu中, sudo apt-get install valgrind
如何使用? 只需使用它啟動程序: valgrind ./yourProgram
如何將其用於泄漏檢測? valgrind --leak-check =是./yourProgram
這是一個指南
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.