我有一個調用數千次,我已經注意到,它是唯一可能地方內存泄漏C函數。我使用Valgrind和Totalview的MemoryScape檢查泄漏,但他們什麼也沒說,但是當應用程序在AIX 6.1上運行時,會出現一個逐漸泄漏的情況。字符串文字造成小內存泄漏?
注:我使用的是「無泄漏」 SAP RFC SDK對於這一點,又假託的發展,他們說我使用的lib是100%無泄漏...所以它是不是...
代碼大致是如下,被稱爲成千上萬的每一個小時時間....
int writeMessage(message msg){
...
...
header = ItCreate("HEADER", HEADER_LEN, 0, 0);
body = ItCreate("DATA", DATA_LEN, 0, 0);
...
...
ItDelete(it_header);
ItDelete(it_body);
...
}
難道那些字符串文字像「頭」和「數據」是導致我的小漏洞?愚蠢的問題,但我寧願要求安全。
會有什麼區別,如果我宣佈他們在這種特殊情況下常數?
感謝您的幫助,非常感謝
您粘貼的代碼的一小部分看起來很好。沒有理由去改變它。 – 2012-03-28 19:03:47
你確定這是泄漏?不只是更多的內存正在消耗?蜇文字不會導致泄漏沒有。 – mattjgalloway 2012-03-28 19:04:38
命名(header vs it_header)略有不同,但我們可以認爲這是一個錯字嗎?順便說一句:你怎麼知道*有一個內存泄漏。只看頂部的Vsize? – wildplasser 2012-03-28 19:06:11