字符串文字导致小内存泄漏?

时间:2012-03-28 19:02:10

标签: c

我有一个被调用数千次的C函数,我注意到它是内存泄漏的唯一可能的位置。我已经使用Valgrind和Totalview的MemoryScape来检查泄漏,但他们什么也没说,但是当应用程序在AIX 6.1上运行时,会逐渐泄漏。

注意:我正在使用“无泄漏”的SAP RFC SDK,并且已经与开发人员交谈,他们说我使用的lib是100%无泄漏的......所以它不是...... < / p>

代码大致如下,每小时被调用数千次......

int writeMessage(message msg){
...
...
header = ItCreate( "HEADER", HEADER_LEN, 0, 0 );
body = ItCreate( "DATA", DATA_LEN, 0, 0 );
...
...
ItDelete(it_header);
ItDelete(it_body);
...
}

像“HEADER”和“DATA”这样的字符串文字是否会导致我的小泄漏?愚蠢的问题,但我宁愿要求安全。

如果我在这种特定情况下将它们声明为CONSTANTS会有什么不同?

感谢您的帮助,非常感谢

4 个答案:

答案 0 :(得分:3)

答案,但这取决于 ItCreate 的作用。粘贴ItCreate功能代码。

答案 1 :(得分:2)

没有。字符串文字具有静态存储持续时间,因此其存储在程序启动之前保留,其生命周期是程序的整个执行。

答案 2 :(得分:1)

  

像“HEADER”和“DATA”这样的字符串文字是否会导致我的问题   小泄漏?

不。

答案 3 :(得分:1)

字符串文字本身不会分配或释放内存,因此无法泄露。

声明他们const不会改变任何事情。你的问题在别处。