可能重复:
可以在其范围之外访问局部变量的内存吗?
我在 C++ 中有以下代码
int* foo()
{
int myVar = 4;
int* ptr = &myVar;
return ptr;
}
int main()
{
printf("val= %d", *foo());
return 0;
}
我得到的输出是:
val = 4
所以我的问题是,由于 myVar 是一个局部变量,它不应该在函数返回后消失吗?指向它的指针也不应该是空指针吗?