c/c++:指针释放问题

File : pointer-release.h
Type : c/c++
Brief : pointer release



class Test
{
public: 
    Test():m_pint(nullptr){}
    ~Test(){if(m_pint) delete m_pint;}

    void start()
    {
        m_pint = new int[10];
    }

    void stop()
    {
        if(m_pint)
            delete m_pint;
        m_pint = nullptr;       // 一定要再次赋值为nullptr,
                                // delelte只是释放内存,但指针m_pint的值不会改变
                                // 不赋值为nullptr,析构时可能出问题
    }

private:
    int* m_pint;
};

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 [ [email protected] ]