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;
};


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

文章标题:c/c++:指针释放问题

本文作者:Y

发布时间:2017-09-29, 21:32:02

最后更新:2019-05-21, 20:06:11

原始链接:http://yehuohan.github.io/2017/09/29/Gist/c&c++/%E6%8C%87%E9%92%88%E9%87%8A%E6%94%BE%E9%97%AE%E9%A2%98/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。