加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 10:00:59 所属栏目:百科 来源:网络整理
导读:如何在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?} 我知道当使用new或malloc时,必须使用delete或free()释
如何在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?
}

我知道当使用new或malloc时,必须使用delete或free()释放内存.

是否为每个Test实例在堆栈上分配了char数组缓冲区,因此不需要删除?

解决方法

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

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

此外,在现代C中,您很少需要像这样管理内存资源.你可以使用std :: vector或其他容器,或者如果你真的需要指针,你应该使用智能指针,std :: unique_ptr和std :: shared_ptr.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读