gpt4 book ai didi

c++ - 我可以在不调用未定义行为的情况下存储指向不存在数据的指针吗?

转载 作者:太空宇宙 更新时间:2023-11-03 10:42:18 24 4
gpt4 key购买 nike

我有一个指针,前段时间指向活着的对象,但现在这个对象已经死了。如果我不使用这个死对象(不取消引用指针、不使用方法等),是否真的没有未定义的行为?

代码示例:

int* x = new int;
int* y = x;
delete x;
// From now on never use *y, or y->... or something else
// that will "dereference" y.

最佳答案

是的,您的代码中没有未定义的行为。您得到的是两个悬挂指针,即xy。如果您不取消引用它们(或再次释放它们),它们就完全没问题,但它们代表了 C 风格代码中的主要错误来源。

关于c++ - 我可以在不调用未定义行为的情况下存储指向不存在数据的指针吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33015813/

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