我正在从 Coverity 问题中清理一些代码,并且遇到这样一种情况,即较早使用指向函数的本地指针是用于比较的函数,然后将其分配给指向 else 的位置,但它从未被取消引用或使用将某物赋予其价值。Coverity 是说它是一个未使用的指针值 - 所以我想将它转换为 void 以指示该指针在该点之后未使用。我想知道什么时候考虑在程序中使用值或变量?这是解释我的情况的代码示例:
在下面的示例中,Coverity 会将 fltr_ptr 标记为在示例结束时的两次分配之后未使用
int initialise (void)
{
// pointer first decalred and defined
FILTER_PTR fltr_ptr = NULL;
// pointer given valid value
fltr_ptr = global_val->filter_group[index];
// second use of fltr_ptr
if ( TRUE == fltr_ptr -> being_used)
{
// first use of fltr_ptr
if ( TRUE != close_filter ( fltr_ptr -> Filter)
{
// print error
}
// do more code
// fltr_ptr assigned first time , value not used should it be (void)fltr_ptr?
fltr_ptr = Free_Memory (fltr_ptr, sizeof(FILTER_PTR));
}
else
{
return 1;
}
for ( number of iterations )
{
// fltr_ptr assigned again but value not used should it be (void)fltr_ptr?
fltr_ptr = global_val->filter_group[index];
}
return 0;
}