[爆卦]釋放記憶體指令是什麼?優點缺點精華區懶人包

為什麼這篇釋放記憶體指令鄉民發文收入到精華區:因為在釋放記憶體指令這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者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
loveme00835:VC++ 版本是? 03/17 21:08
yuyunmm:忘了打 VC++ 6.0 03/17 21:09
james732:我會建議利用置底文的連結,貼上完整的程式碼 03/17 21:10
謝謝~我貼好了
tropical72:for loop 裡面還有繼續用 new ? 03/17 21:20
沒有再使用,只有一開始的部分~
※ 編輯: yuyunmm 來自: 140.113.96.33 (03/17 21:24)
littleshan:creatematrix 所配置的記憶體沒釋放吧 03/17 21:28
littleshan:你的 code 非常糟糕,基本的變數名稱和縮排都沒做好 03/17 21:29
對不起~因為很急著想解決問題,沒有做到應有的整理,我會改進的
littleshan:喔我看到free(v)了 03/17 21:31
littleshan:不對啊,你的v是二維陣列,怎麼能用free去釋放 03/17 21:32
所以想請問大大,free是只能去釋放malloc所配置的一維矩陣嗎?
那我是利用malloc創造出二維矩陣應該要怎麼釋放?謝謝!!
※ 編輯: yuyunmm 來自: 140.113.96.33 (03/17 21:36)
stupid0319:怎麼建立的就怎麼FREE 03/17 21:44
littleshan:你看一下 creatematrix 裡面是怎麼寫的 03/17 21:45
littleshan:大概是 v=malloc(...); for(...){ v[i]=malloc(...);} 03/17 21:46
littleshan:所以你要先對所有的 v[i] 進行 free,才能 free(v) 03/17 21:46
yuyunmm:很感謝大大的幫忙~我先試試看!謝謝! 03/17 21:52
loveme00835:個人比較喜歡這種寫法 http://codepad.org/iEQQapuv 03/17 22:03
loveme00835:其他動態陣列也可以這樣寫, 當印出來的值怪怪就可以 03/17 22:06
loveme00835:知道存取違規, 而不是等到當機才發現 03/17 22:06

你可能也想看看

搜尋相關網站