安吉丽娜朱莉暴瘦:关于指针的问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/24 04:25:10
#include <stdio.h>

int* method(void){

int val = 100;
int* p = &val;
return p;
};

int main(void){

int* p = method();
printf("The Value1 is: %d\n", *p);

*p = 200;
printf("The Value2 is: %d\n", *p);

return 0;
};

以上程序中,method()在返回后val已经被释放了,为什么main()中的指针
P还能打印val的值? 难道没有被释放吗?我用的是LCC

函数变量使用的是系统堆栈的内存.
这段内存是所有被调用函数共用的,函数返回时只是修改堆栈的指针,内存并没有释放,只是暂时没有使用。