关于函数返回后,内存是否释放的一个简单例子!
#include <stdlib.h>
#include <stdio.h>
int * fmalloc()
{
int a = 100;
int *ptr;
ptr = &a;
return ptr;
}
int main(int argc, char *argv[])
{
int *tmp;
tmp = fmalloc();
printf("TMP is %d\n",*tmp);
return EXIT_SUCCESS;
}
此程序的运行结果是 TMP is 100,我就想不明白了啊,函数fmalloc()返回后应该释放a啊,为什么,还能获得a的内容呢,想知道具体的原因和这样做是否有什么潜在的危险,谢谢