質問があります。まずコードを見てください
#include <stdio.h>
int sum(); /* function declaration */
int main()
{
int *p2;
p2 = sum(); /* Calling function sum and coping its return type to pointer variable p2 */
printf("%d",*p2);
} /* END of main */ `
int sum()
{
int a = 10;
int *p = &a;
return p;
} /* END of sum */
答えは10で変数aのアドレスだと思いますが、私のtesacherは、aは関数に対してローカルなので、関数が戻るか実行が終了すると、その値はメモリの場所から削除されると言います。私はこのコードを試してみましたが、答えはもちろん 10 と a のアドレスです。私は GNU/GCC コンパイラを使用しています。何が正しくて何が間違っているかは誰にも言えません。前もって感謝します。