#include <stdio.h>
void func(int **);
int main()
{
int *arr[2];
func(arr);
printf("value [1] = %d \n",*arr[0]);
printf("value [2] = %d \n",*arr[1]);
return 0;
}
void func(int **arr)
{
int j = 10;
arr[0] = &j;
arr[1] = &j;
}
コードは gcc で正常にコンパイルされます。ただし、出力は次のとおりです。
value [1] = 10
value [2] = 32725
2 番目の値はガベージ値です。なぜそうなのですか?ダブルポインタを正しく使用して配列にアクセスするにはどうすればよいですか?