gpt4 book ai didi

C:什么时候考虑使用变量或值?

转载 作者:太空宇宙 更新时间:2023-11-04 05:56:28 26 4
gpt4 key购买 nike

我正在从 Coverity 问题中清理一些代码,并且遇到这样一种情况,即函数的局部指针在早期使用是用于比较的函数,然后它被分配到指向其他地方但它永远不会被删除 -引用或用于将某物赋值给它的值。 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;
}

最佳答案

Coverity 指向您,您在最后一个 for 循环中分配给了 fltr_ptr,但您没有对该值执行任何操作。为什么要分配?转换为 void 可能会修复警告,但首先要修复的应该是以某种方式使用指针,或者停止分配给它。

关于C:什么时候考虑使用变量或值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26484174/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com