首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >结构数组和新/删除

结构数组和新/删除
EN

Stack Overflow用户
提问于 2018-06-15 02:33:32
回答 2查看 0关注 0票数 0

我有这样的结构:

代码语言:txt
复制
class Items 
{
private:
    struct item
    {
        unsigned int a, b, c;
    };
    item* items[MAX_ITEMS];
}

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

代码语言:txt
复制
items[5] = NULL;

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

代码语言:txt
复制
items[5] = new item;

我还需要打电话吗delete[]来清理这个?或者这不需要因为数组的界限items[]在编译之前就知道了吗?

是否将指针设置为NULL有效,还是应该在那里调用DELETE?

EN

回答 2

Stack Overflow用户

发布于 2018-06-15 11:30:41

删除项目使用:

删除项目五;

删除项目后,建议将已删除的指针设置为NULL,这样,如果以后错误地再次删除该指针,则不会出现错误。

票数 0
EN

Stack Overflow用户

发布于 2018-06-15 12:09:34

需要delete在将其设置为NULL之前进行调用。(将它设置为NULL不是必需的,如果在删除指针后意外地尝试解除引用,它只会帮助减少错误。)

请记住,每次使用时new,都需要delete稍后使用相同的指针。不要使用其他的。

此外,new []delete []一起去以同样的方式,但你千万不要混合new []使用deletenew使用delete []。在你的例子中,因为你创建了对象new(而不是new []创建一个对象数组),所以你必须用delete(而不是delete [])删除对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100000288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档