【发布时间】:2019-11-21 18:19:58
【问题描述】:
我知道 cppcheck 可以检查对变量的空指针的取消引用。例如,这会触发 cpp 检查:
int* a = NULL;
*a = 5;
是否可以配置 cppcheck 以便它也验证函数返回的指针?像这样的:
int* foo() { return NULL; }
void main()
{
int a = *foo();
}
如果可能的话,它是否也适用于智能指针?
【问题讨论】:
-
第一个不是空指针,是未初始化的指针
-
你试过用 cppcheck 检查代码吗?
-
别忘了在 C++ 中你应该使用
nullptr。 -
除非
cppcheck可以推断出函数总是返回NULL,否则这很难提前看到。 -
一般没有。首先函数体可以在不同的编译单元中。其次 - 它只适用于非常微不足道的情况,因此它的价值为零。
标签: c++ static-code-analysis cppcheck