函数指针回到
函数指针返回#includestdio.hint* f(int x){return &x}int main(){int i 5int *p f(i)printf(%d
函数指针返回
#include<stdio.h>
int* f(int x)
{
return &x;
}
int main()
{
int i = 5;
int *p = f(i);
printf("%d", *p);
return 0;
}
代码为什么能够正常输出5;
函数形参x不是在退出函数后被销毁了吗。那指针应该指向的是没有数值的内存。所以会是随即的数才对吧。 C 函数返回指针
[解决办法]一块内存没人去写,它的值就不变。
[解决办法]你在int *p = f(i);和printf("%d", *p);之间加一些其它c语句看看结果是什么?有什么效果?
[解决办法]栈是会被销毁,但是如果那块内存没有被另外的变量占用,那应该还是原来的值吧
[解决办法]用汇编模式看了下,eax寄存器没有重置,按正常来说是会被销毁的