理解new和delete还有就是如何防止内存泄露

来源:互联网 发布:视频剪切编辑软件 编辑:程序博客网 时间:2024/05/16 18:16

首先,new的话就是为对象在内存的堆中开辟一块内存空间

比如说    int *p = new int(10);就是说从内存中分配一个足够大的内存来存放int变量。

                delete p  释放内存


关于内存泄露方面的问题

1、  在使用new和delete的时候要配对

2、  使用malloc后要free

3、  可以定义一个全局的list,进行内存分配的时候插入,释放时删除

4、  使用智能指针auto_ptr 

        原来定义指针为   int *p=new int(10); .................delete p;

       而是用auto_ptr智能指针的话只需要    auto_ptr p(new int(10));不需要进行手动释放内存

5、还有就是关于Boost,它针对auto_ptr很多不足方面进行补充。本人暂时还没学习这方面的知识。