これは面接の質問ですが、どうすればいいのかわかりません。
関数で宣言されたローカル静的変数があるとします。インタビュアーが関数を呼び出さずに私に尋ねましたが、それを変更することは可能ですか?私は方法がわからない。しかし、おそらく何らかの方法でローカル静的変数のアドレスを取得できると思いますか?
静的ストレージを持つオブジェクトへのポインタを返すことができます。
#include <stdio.h>
int *foo(void) {
static int x;
printf("%d\n", x);
return &x;
}
int main(void) {
int *p = foo();
*p = 10;
foo();
return 0;
}
印刷します:
0
10
あるいは、もちろん、ポインタをポインタに渡して、返す代わりにそこに格納することもできます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加