я просто использую 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;
};
error : : Возможное разыменование нулевого указателя: m_buffer - иначе избыточно проверять его на нуль.
m_buffer
NULL
после того, что вы уже использовали его. Сообщение указывает (правильно), что если оно может бытьNULL
(а если нет, то почему вы проверяете?), вы должны узнать прежде чем использовать его в строке выше . - person Paul Roub   schedule 20.04.2015