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

我有一个被调用数千次的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); ... } 

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

如果我在这个特定情况下宣称它们是CONSTANTS会有什么区别?

感谢您的帮助,非常感谢

字符串文字本身不分配或释放内存,因此不能泄漏。

声明它们const不会改变任何东西。 你的问题在别处。

答案是肯定的 ,但这取决于ItCreate做了什么。 粘贴ItCreatefunction代码。

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

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

不。