gpt4 book ai didi

c++ - 我如何知道指针是否已通过 'new' 分配数据?

转载 作者:太空宇宙 更新时间:2023-11-04 15:46:20 28 4
gpt4 key购买 nike

假设我有一个这样的指针:

int *thingy;

在某些时候,这段代码可能会或可能不会被调用:

thingy=new int;

我怎么知道我是否可以这样做:

delete thingy;

我可以为每个指针使用一个 bool 并在我使用 new 时将 bool 标记为 true,但我有很多指针和那会变得非常笨重。

如果我没有在 thingy 上调用 new,那么在它上面调用 delete 可能会导致崩溃,对吗?

我搜索了很多,但没有找到明显适合我的情况的答案。

编辑:我需要能够根据需要多次删除指针,而指针不一定指向任何数据。如果这是不可能的,我将不得不重写我的代码。

最佳答案

总是初始化为NULL

int *thingy = NULL;

然后

delete thingy;
thingy = NULL;

即使 thingy 为 NULL 也是有效的。只要 thingyNULL,您就可以多次删除 delete 不会产生不必要的副作用。

关于c++ - 我如何知道指针是否已通过 'new' 分配数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16050793/

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