gpt4 book ai didi

c++ - 结构数组和新建/删除

转载 作者:可可西里 更新时间:2023-11-01 18:04:49 26 4
gpt4 key购买 nike

我有一个这样的结构:

class Items 
{
private:
struct item
{
unsigned int a, b, c;
};
item* items[MAX_ITEMS];
}

假设我想“删除”一个项目,就像这样:

items[5] = NULL;

后来我在同一个地方创建了一个新项目:

items[5] = new item;

我还需要调用 delete[] 来清理它吗?或者不需要这个,因为数组 items[] 的边界在编译之前就已知了?

将该指针设置为 NULL 有效还是我应该在那里调用 delete?

最佳答案

在将其设置为 NULL 之前,您需要调用 delete。 (不需要将其设置为 NULL,如果您在删除指针后不小心尝试取消引用指针,它只会帮助减少错误。)

请记住,每次使用 new 时,稍后都需要对同一指针使用 delete。切勿单独使用其中一个。

此外,new []delete [] 以相同的方式组合在一起,但您永远不应将 new []deletenew with delete []。在您的示例中,由于您使用 new 创建了对象(而不是使用 new [] 创建对象数组),因此您必须使用 delete< 删除对象(而不是 delete [])。

关于c++ - 结构数组和新建/删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/434140/

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