gpt4 book ai didi

c++ - 是否允许引用变量在 C++ 中破坏它们的对象?

转载 作者:太空宇宙 更新时间:2023-11-04 14:54:29 25 4
gpt4 key购买 nike

假设我们有以下(奇怪的)代码:

int* getPointer(int* p) {
int* x_p = nullptr;
int& x = *p;
if(x==7) {
x_p = &x;
}
return x_p;
}

由于 x 被赋予了 p 的值,我觉得这段代码是不安全的:当 x 超出范围时,它被关联对象可以被破坏,使 x_p 处于无效状态。

不过,我测试了这段代码,它运行良好。是我很幸运还是 x 是一个引用变量这一事实改变了销毁序列?

最佳答案

不,*p 显然不会简单地被 x 超出范围破坏,否则引用几乎每次使用它们时都会固有地导致双重“释放” .

关于c++ - 是否允许引用变量在 C++ 中破坏它们的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25343003/

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