gpt4 book ai didi

C++ 在结构初始化后释放内存?

转载 作者:行者123 更新时间:2023-11-28 02:29:52 24 4
gpt4 key购买 nike

我正在以这种方式创建 my_data。我应该在程序结束时手动释放内存吗?如果是,该怎么做? free() 给我转换错误,而 delete() 需要指针。

struct data{
int a;
int b;

data():
a(1),
b(2) {}
} my_data;

最佳答案

不,你不应该。

您不是在堆上创建结构,因此无需手动释放内存。该内存将在程序结束时标记为可供操作系统使用。

并且甚至不要考虑执行 delete &my_data,因为您几乎肯定会遇到 sefgault,因为内存被释放了两次。

如果使用动态分配,你需要这样做

data* pdata = new data; // needs delete pdata

关于C++ 在结构初始化后释放内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29321663/

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