別の質問への回答でこれを見ました:
char (*arrs)[rowSize] = malloc(bytesPerTable);
アーズとは?/ 括弧があるのはなぜですか / この宣言の説明は何ですか?
別の質問への回答でこれを見ました:
char (*arrs)[rowSize] = malloc(bytesPerTable);
アーズとは?/ 括弧があるのはなぜですか / この宣言の説明は何ですか?
アーズとは?この宣言の説明は何ですか?
これは の配列へのポインターであり、へのポインターとrowSize charは大きく異なりますchar。
なぜ括弧があるのですか
それらがないと、へのポインターの配列になるためcharです。
int *a[10]-つまり、aは10要素の配列であり、要素タイプはint *次のとおりです。変数のサイズはa、32ビットマシンでは40バイト、64ビットマシンでは80バイトになります。
int (*a)[10]-これは、aがポインタ変数であり、そのサイズが4バイト(または8バイト)になることを意味します。これは、以下のようなintサイズの配列のアドレスを保持でき10ます。
int (*a)[10] = NULL;
int b[10] = {0};
a = &b;