為什麼這篇釋放記憶體指令鄉民發文收入到精華區:因為在釋放記憶體指令這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者yuyunmm (大阪~大阪~)看板C_and_CPP標題[問題] 副程式釋放記憶體相關問題時間...
釋放記憶體指令 在 4Gamers編輯部 Instagram 的精選貼文
2020-09-21 13:30:39
十銓科技今日推出業界第一最大容量 15.3TB 消費級 2.5 吋 SATA 固態硬碟 QX,擁有高達 15.3TB 的海量儲存空間。QX 採用最新 3D QLC 快閃記憶體,具備高達 2560TBW 的寫入壽命,業界超高耐用度,體積輕薄卻提供巨大的 15.3TB 儲存規格,是目前市場上 SATA...
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
主要是副程式的部分,我有使用動態配置(new),但在結束的時候也有用釋放記憶體的指令
但不知道為啥我打開工作管裡員來看,記憶體卻是一直增加,完全沒有減少的跡象
請問會是什麼問題?我已經debug好幾天了,但還是沒結果.......
或是有辦可以當副程式跑完後,將副程式使用到的記憶體完全釋放出來的指令?
一開始時宣告
float *e = new float [nN+2];
float *f = new float [nN+2];
float *ee = new float [nN+2];
float *ff = new float [nN+2];
結尾return前使用
delete [] e;
e = NULL;
delete [] f;
f = NULL;
delete [] ee;
ee = NULL;
delete [] ff;
ff = NULL;
在中間的運算過程中使用while再包大量的迴圈(for),這樣的運算會很吃記憶體嗎?
我跑一次大概增加1000K左右的記憶體,但因為會一直使用到這個副程式
所以最後就造成程式爆掉(強制關閉)
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
http://codepad.org/Ugr6BzUi
以上是我的副程式部分程式碼,因為整個程式碼大概有word 14頁這麼多~
我自己努力找到最吃記憶體的元兇就是這個副程式
所以只貼了這部分的程式碼~
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.96.33
※ 編輯: yuyunmm 來自: 140.113.96.33 (03/17 21:24)
那我是利用malloc創造出二維矩陣應該要怎麼釋放?謝謝!!
※ 編輯: yuyunmm 來自: 140.113.96.33 (03/17 21:36)