PC Lint не обнаруживает возможное использование нулевого указателя на статических переменных указателя на член

Внутри статической функции-члена одноэлементного класса вместо использования getInstance () я использовал переменную-член статического указателя напрямую.

Я не проверял null, и он был нулевым во время выполнения, следовательно, исключение нулевого указателя.

PC lint не уведомил меня об этом. Обычно это уведомляет меня как предупреждение Prio 2: возможно использование нулевого указателя.

Почему он не уведомил меня?

class stClass
{
int m_value;
static stClass *s_instance;
stClass(int v = 0)
{
m_value = v;
}
public:
int get_value()
{
return m_value;
}
void set_value(int v)
{
m_value = v;
}
static stClass *getInstance()
{
if (!s_instance)
s_instance = new stClass;
return s_instance;
}
static void intentFunction()
{
printf("%d", s_instance->getValue()); // Null pointer exception here...
}
};

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]