This question already has answers here:
How to access a local variable from a different function using pointers?
(9个答案)
3年前关闭。
当我在Visual Studio中尝试以下代码时,它给了我45,但是当我在在线编译器中运行它时,有的给我一个错误,有的给我0.我期望它们都给我一个错误,怎么回事? !
谢谢
您正在返回指向超出范围的局部变量的指针-因此该指针将无效
如果收到错误,则取决于该编译器的各种设置
(9个答案)
3年前关闭。
当我在Visual Studio中尝试以下代码时,它给了我45,但是当我在在线编译器中运行它时,有的给我一个错误,有的给我0.我期望它们都给我一个错误,怎么回事? !
谢谢
#include <stdio.h>
int *f(int *a)
{
*a = 23;
int b = 45;
return &b;
}
int main(void)
{
int i = 2;
int *p;
p = f(&i);
printf("The return value of function f: %d\n\n", *p);
return 0;
}
最佳答案
问题:
return &b;
您正在返回指向超出范围的局部变量的指针-因此该指针将无效
如果收到错误,则取决于该编译器的各种设置
关于c - C中的局部变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40182644/
10-11 19:36