#include <iostream>
int* retPointer()
{
int x=10; //same as auto int x =10;
return &x;
}
int main(int argc, char **argv)
{
std::cout<<"x="<<*retPointer()<<std::endl;
return 0;
}
在上面的示例中,我返回一个指向堆栈的局部变量的指针。当我在 man() 中打印此指针指向的值时,我应该得到一个段错误。当我从函数 retPointer() 返回时,变量 x 应该超出范围。那么当尝试访问 main() 中的值时,我不应该遇到分段错误吗?我在这里错过了什么吗?
输出 = x=10