我使用以下功能:
flist_create(flist *cont)
-为以下实例分配内存
结构flist_destroy(flist *cont)
-释放内存flist_put(flist *cont, char *val)
-转移val的内存所有权
继续(flist_destroy
稍后会释放该内存,作为清理续的一部分)对于flist本身,我可以这样做:
<memory>
<alloc>flist_create</alloc>
<dealloc>flist_destroy</dealloc>
</memory>
但是,我不能将flist_put
添加为dealloc(以释放值),因为cppcheck会认为应该释放flist)。
有什么方法可以配置cppcheck来告诉它,只有指定的位置参数才应考虑用于dealloc?
答案 0 :(得分:1)
查看cppcheck的源代码后,我找到了答案:
<memory>
<alloc>flist_create</alloc>
<dealloc>flist_destroy</dealloc>
<dealloc arg="2">flist_put</dealloc>
</memory>
我发现cppcheck手册有所欠缺,因为它并没有记录在案的cfg文件的所有可能用途...