1

ポインターなどについては理解していますが、ここで何が間違っているのかわかりません。if i Have char *(*data)[] それは「char ポインターの配列へのポインター」として解釈されるだけですよね?それから私はこのような構造体を持っています.typedefはmyStructになるように指定されていますが、それは冗長かもしれませんが、それは重要ではありません:

    typedef struct myStruct myStruct;
    struct myStruct{
      int size;
      char *name;
      myStruct *(*array)[];
}

似たような記事がないかサイトを見て回ったところ、次のようなものがありました。

    //let's say allocating 5 spaces for this case
    myStruct *a = malloc(sizeof(myStruct)+ sizeof(struct myStruct *)*5);

構造体に割り当てた数は、配列のサイズであると確信しています。これについて頭を悩ませることはできません。構造体の場合、どのように機能しますか? ここでの計画は、この構造体を持つことであり、5 つの myStruct の配列が含まれています。それらも別々に割り当てる必要がありますか?このような?

    a->array[0] = malloc( .... ) 

試してみましたが、境界が指定されていない配列の無効な使用というエラーが表示され続けます。何が間違っているのか、どうすれば修正できますか? ありがとうございました

4

2 に答える 2