3

質問にあるように、コンパイル時に合計サイズがわからない C で構造体を作成しようとしています。

たとえば、カウント値とカウント要素を持つ配列を含む構造体を作成したいと思います。これは次のように実装できることを知っています:

typedef struct myStruct{
    int count;
    int *myArray;
} myStruct;

memcpy()ただし、後で使用できるように、この構造体がメモリの 1 つの固体ブロックを占有するようにしたいと考えています。このような:

typedef struct myStruct{
    int count;
    int myArray[count];
} myStruct;
4

2 に答える 2

5

柔軟な配列メンバーを探しているようです:

typedef struct myStruct
{
    int count;
    int myArray[];
} myStruct;

次に、後で割り当てるとき:

myStruct *x = malloc(sizeof(myStruct) + n * sizeof(int));
x->count = n;
于 2013-07-25T18:50:37.813 に答える