【发布时间】:2017-05-03 13:16:45
【问题描述】:
#include<stdio.h>
int *call();
int main()
{
int *ptr;
ptr=call();
fflush(stdin);
printf("%d",*ptr);
return 0;
}
int * call()
{
int x=25;
++x;
return &x;
}
这段代码的输出是 0。我期待的是 26。
谁能解释一下原因?
我应该怎么做才能得到 26?
【问题讨论】:
-
fflush(stdin)是 UB。 -
@SouravGhosh:这是该代码问题中较小的问题。它撒有 UB。
-
UB是什么意思?
-
UB:未定义的行为
标签: c pointers return lifetime fflush