#include<stdio.h>
void f(int *p) {
static int data = 5;
p=&data;
}
int main(void) {
int *ip=NULL;
f(ip);
printf("%d\n", *ip);
return 0;
}
可能であれば、 原因エラーは何ですか? コードを修正するにはどうすればよいですか?は可能ですか?ローカル静的値のアドレスをメインポインタに渡す?
'p'は' ip'のコピーです。 'p'を変更すると' ip'は変更されません。 – mch
は明らかですが、そうでなければ、 'f'からの' void'の返り値は、最初にパラメータを使うのではなく、アドレスを返すのが良いでしょうか? – WhozCraig
これは既に何度も尋ねられていますが、これに対する標準的な答えは素晴らしいでしょう。 –