ポインターへのポインターにインデックスがある場合、C は何をするのかを知りたいです。例えば:
struct X {
int a;
int b;
};
struct X ** ptr;
ステートメントに次のものが含まれているとどうなりますか:
ptr[i] // where i is an unsigned int
ガベージ値を返します。「ptr」はポインタへのポインタであるため。実際に何を指しているのかを宣言していません。例えば..
#include<stdio.h>
struct X {
int a;
int b;
};
int main()
{
struct X ** ptr;
unsigned int i=1;
printf("%d",ptr[i]);
return 0;
}
出力を得ました。
1483736418
これは、私が定義していないポインターのガベージ値です。
ポインターは 1 回だけ逆参照されます。これは、式の型が であることを意味しstruct X *
ます。これで、最初の 2D 配列の特定の行を持つすべてのポインターへの 1D ポインター配列ができました。