【返回指针的函数】不明点
程序代码:
#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 编辑 ]