我写了一个函数f()来返回指向main函数的本地指针.我知道f()函数的内存将在执行后释放.但是f()函数可以返回指向a [2]数组的指针.我认为[2]应该被释放,但它仍然存在.
所以我想知道我可以编写一个函数,它可以返回本地指针,本地指针指向函数中的局部变量吗?如果它可以返回,为什么在f()函数结束后不会释放[2]的数组?
#include <stdio.h>
int* f()
{
int a[2] = {1, 2};
int* p = a;
printf("%p\n", p);
return p;
}
int main(void)
{
int* p = f();
printf("%p\n", p);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
621 次 |
| 最近记录: |