1

このコードでは、「配列」は文字へのポインタの配列ですか?または、他の何か?

struct tmep{
    char (*array) [SIZE];
}

前もって感謝します :)

4

1 に答える 1

7

s の配列へのポインタSIZE charです。

宣言は使用を模倣するため、最初に括弧を評価する(*array)と、char[SIZE].

割り当てるには、安定版はいつものように

array = malloc(num_elements * sizeof *array);

逆参照されたポインターchar[SIZE]を取得して、ブロック内の各オブジェクト (ここ) のサイズを指定します。sizeofタイプが に変更された場合、その割り当てを変更する必要はありませんint (*)[SIZE]

種類を指定したい場合は、

array = malloc(num_elements * sizeof(char (*)[SIZE]));

これは、malloc成功した場合、s のnum_elements配列に十分な大きさのブロックを割り当てSIZE charます。これらの配列のそれぞれは、次のようにアクセスされます。

array[i]

およびcharブロック内の配列内の s

array[i][j]
于 2013-01-10T13:41:27.037 に答える