【发布时间】:2015-04-20 14:20:46
【问题描述】:
我只是使用 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 命令行选项。
-
您正在检查
m_buffer是否是NULL在您已经使用它之后。该消息指出(正确地)如果它可能是NULL(如果不是,你为什么要检查?)你应该找出before在上一行。 -
@PaulRoub:这应该是答案而不是评论。