我只是使用cppcheck代碼正常工作,只是cppcheck給出了這個錯誤。Cppcheck可能的空指針解除引用:
void WorkerThread(WorkBuffer* m_buffer)
{
std::cout << "Thread : " << m_buffer->m_id << ".....Starting" << std::endl;
if (NULL == m_buffer)
std::cout << "Thread : " << m_buffer->m_id << "......work buffer is null" << std::endl;
while(!shut_down_flag)
{
int k = 0;
//Sleep(1);
SleepSystemUsec(100000);
std::cout << "Thread : " << m_buffer->m_id << "....in while loop" << std::endl;
} // of while(!shut_down_flag)
std::cout << "Thread : " << m_buffer->m_id << ".....Request from main thread so ending working thread ...." << std::endl;
};
錯誤::可能的空指針解引用:m_buffer - 否則,檢查它爲空是多餘的。
請提供更多代碼和CPPCheck命令行選項。 – Corvusoft
您正在檢查'm_buffer'是否爲'NULL' * * *之後,您已經使用它。該消息指出(正確),如果它*可以*爲'NULL'(如果不是,你爲什麼要檢查?)你應該在上面的行中使用它之前找出*。 –
@PaulRoub:這應該是**答案**而不是**評論**。 –