【返回指针的函数】不明点
程序代码:#include <stdio.h>
int *fun(void)
{
int a = 7;
return &a;
}
int main()
{
printf("%d\n",*fun());
return 0;
}我写了如上的一小段代码,在fun函数运行结束时返回局部变量a的地址,并在主函数中访问地址输出数据,但却不出错,成功输出7。
不是说函数中定义的局部变量都是保存在栈中,当函数结束时,其栈上的数据也会被销毁吗,为啥被销毁了还能在主函数中访问那段地址成功输出其中的数据。
[ 本帖最后由 果沫 于 2013-2-24 11:59 编辑 ]










本质一样
有啥价值。