#include<stdio.h>
int *fun();
int main()
{
int *ptr;
ptr=fun();
printf("%d",*ptr);
printf("%d",*ptr);
}
int * fun()
{
int k=4;//If auto then cannot print it two times.....stack will be changed
return(&k);
}
O/P: 4
-2
初めて printf() を呼び出すと、正しい値が出力されます。
fun( ) の呼び出しの直後に任意の関数 (printf( ) を含む) を呼び出す。今度は printf( ) がガベージ値を出力します。これはなぜですか?最初の print ステートメント自体でガベージ値を取得しないのはなぜですか????