当前位置:  开发笔记 > 编程语言 > 正文

我应该删除.h文件中的char数组

如何解决《我应该删除.h文件中的char数组》经验,为你挑选了1个好方法。

如何buffer在Test.h中管理char数组?

Test.h

class Test{
public:
    Test();
    ~Test();

    char buffer[255];
};

Test.cc

#include "Test.h"

Test::Test()
{
}

Test::~Test()
{
    // Do I need to delete/free buffer?
}

我知道,当newmalloc正在使用的内存必须使用被释放deletefree().

char数组是否在buffer每个实例的堆栈上分配Test,因此不需要删除?



1> bolov..:

不,您不需要删除它.因此,您不需要析构函数(除非您有其他需要释放的资源)

规则很简单:使用malloc/ new/ 获取的每个内存/对象new[]应该被释放/销毁一次,并且只有相应的free/ delete/ delete[].没什么.而已.

此外,在现代C++中,您很少需要像这样管理内存资源.你会使用std::vector或另一个容器,或者如果你真的需要指针,你应该使用智能指针,std::unique_ptrstd::shared_ptr.

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有