linux 静态 内存泄漏,c – gcc/linux:CppuTest使用静态向量显示内存泄漏,误报?

在xxxx.h文件中:

struct dn_instance_pair

{

std::string theDn;

int theInstance;

};

typedef struct dn_instance_pair t_dn_inst_pair;

struct table_rowid_type

{

char theTable[101];

sqlite3_int64 theRowid;

int operation;

};

// static class members

static vector dninstList;

static vector tablerowidList;

在xxxx.cpp中

// declaration of vectors.

// Included to this post only for completeness.

vector xxxx::dninstList;

vector xxxx::tablerowidList;

这些向量在静态回调函数中处理,因此它们也必须是静态的.

在cpputest中,当尝试在这些向量中的任何一个中添加某些内容时,会发生故障:

Leak size: 8 Allocated at: and line: 0. Type: "new" Content: "

添加到向量中的东西是自动变量,它发生在正常函数中:

t_dn_inst_pair thePair;

thePair.theDn = updated_dn;

thePair.theInstance = updated_instance;

在测试用例结束时清除向量:

xxxx::yyyy()->dninstList.clear();

(yyyy()返回指向单例xxxx对象的指针)

“This is a false positive. This is a one-time allocation and a

side-effect of C++ memory allocation and static initialization.”

所以我的问题是:

这种失败真的是假阳性吗?

br Esko

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值