2013-09-20 3 views
1

Я на самом деле работает на некоторых изменений в моем приложении и Klocwork держит жалуясь мне об одной проблеме:Явное разыменования указателя в C++

У меня есть-структуру, скажем

Struct A 
{ 
    long x; 
    bool b; 
} 

У меня есть указатель и ему присваивается возвращаемое значение из другой функции:

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

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

Klocwork держит указывая на if(!z->x), говоря, что г явно разыменовываются.

Хотя мое приложение отлично работает сейчас, повлияет ли оно на мое приложение в будущем?

+0

Что происходит в 'function'? – shuttle87

+0

Фактически эта функция относится к критическому разделу и возвращает значение только тогда, когда оно выполняется в критическом разделе. – user2800803

ответ

1

Вам нужно сначала проверить, не является ли z ненулевым до отсрочки z и проверяется на z-> x.

if(z && !z->k) 
    ... 

 Смежные вопросы

  • Нет связанных вопросов^_^