[問題] free指令於記憶體釋放

看板C_and_CPP (C/C++)作者 (On my way)時間14年前 (2011/10/13 10:35), 編輯推噓2(205)
留言7則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 在一個子函式裡使用了malloc配置記憶體 使用完之後在該函式裡也用free指令歸還 但是從工作管理員的視窗來看,它並沒有即刻的歸還給系統(Win7) 主要的問題是說,因為我的程式會一直呼叫這個函式 當呼叫過多次的時候,系統的記憶體最後會被吃光,然後發生錯誤(可是我明明有free) 最後我只好直接把要配置的變數直接設成全域變數 然後在main()裡配置,然後再讓子函式去存取 而最後也在main()裡面去做free的動作 目前初步觀察應該是沒什麼問題(但我沒去確認是不是會即刻釋放記憶體就是) 不太懂為什麼會這樣...=.= 爬文裡面有些人有遇過類似的問題,可是又不全然一樣 因此想請大家協助一下釐清這個問題..... -- 現代人普遍的現象: 「小學而大遺」、「捨本而逐末」、「以偏而概全」、「因噎而廢食」 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.144.28

10/13 10:38, , 1F
沒code只能隔空抓藥
10/13 10:38, 1F

10/13 10:53, , 2F
沒想到還能看到這個簽名檔 :D
10/13 10:53, 2F

10/13 10:59, , 3F
小州嗎...以前學 Linux 一天到晚看到它的文章
10/13 10:59, 3F

10/13 11:00, , 4F
"他"的文章
10/13 11:00, 4F

10/13 11:11, , 5F
你去下載vld來用吧! 可以偵測你有沒有釋放.
10/13 11:11, 5F

10/14 00:37, , 6F
system call 很貴, malloc 來的記憶體, free掉不會馬上還
10/14 00:37, 6F

10/14 00:39, , 7F
否則下次malloc又很貴,free 掉後工作管理員那不會馬上看到
10/14 00:39, 7F
文章代碼(AID): #1Ebavtyd (C_and_CPP)
文章代碼(AID): #1Ebavtyd (C_and_CPP)