gpt4 book ai didi

c++ - 我应该删除 .h 文件中的字符数组吗

转载 作者:太空狗 更新时间:2023-10-29 20:11:11 24 4
gpt4 key购买 nike

如何在 Test.h 中管理字符数组 buffer

测试.h

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

char buffer[255];
};

测试.cc

#include "Test.h"

Test::Test()
{
}

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

我知道当使用 newmalloc 时,必须使用 deletefree() 释放内存>。

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

最佳答案

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

规则很简单:每个用malloc/new/new[]获得的内存/对象都应该被释放/销毁 once and only once 与相应的free/delete/delete[]。没什么。仅此而已。

此外,在现代 C++ 中,您很少需要像这样管理内存资源。您将使用 std::vector 或其他容器,或者如果您确实需要指针,则应使用智能指针、std::unique_ptrstd::shared_ptr

关于c++ - 我应该删除 .h 文件中的字符数组吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34557096/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com