PC Lint未检测到静态成员指针变量上可能使用空指针

时间:2014-09-17 08:50:17

标签: c++ pointers lint pc-lint

在单例类的静态成员函数中,我直接使用了静态指针成员变量,而不是使用getInstance()。

我没有检查它并且它在运行时为空,因此空指针异常。

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 个答案:

没有答案