1

我实际上正在对我的应用程序进行一些更改,而 klocwork 一直在抱怨我一个问题:

我有一个结构,说

Struct A
{
  long x;
  bool b;
}

我有一个指针,它被分配了另一个函数的返回值:

A* z= (A*) function.get();

if(!z->x)
{
  z->x= somevalue;
}

klocwork 一直指向if(!z->x),表示 z 已明确取消引用。

虽然我的应用程序现在运行良好,但它会在未来对我的应用程序产生重大影响吗?

4

1 回答 1

1

您需要先检查 z 是否为非空,然后再引用 z 并检查 z->x。

 if(z && !z->k)
     ...
于 2013-09-20T21:57:05.787 回答