【发布时间】:2016-03-18 17:34:15
【问题描述】:
int *x;
{
int y;
x = &y;
}
*x = 5;
我认为问题在于x = &y应该改为x = y。但是,我还是不知道为什么会崩溃?
【问题讨论】:
-
当程序退出定义
y的内部范围时,变量x指向超出范围。 -
y在其旧位置更改时超出范围。所以它绝对是 UNDEFINED BEHAVIOR 并且可以做任何事情。在实践中,您需要一些额外的复杂性才能导致崩溃。 -
每本书都是关于 C++ 的介绍性书籍,它解释了对象的生命周期。你应该阅读at least one。
-
我投票结束这个问题,因为它的质量很低。
标签: c++ pointers reference dereference