zzt*_*ops 3 c memory data-structures
正如问题所述,我希望在C中创建一个结构,我在编译时不知道它的总大小.
例如,我想创建一个包含计数值的结构和一个包含count元素的数组.我知道这可以实现为:
typedef struct myStruct{
int count;
int *myArray;
} myStruct;
Run Code Online (Sandbox Code Playgroud)
但是,我希望这个结构占用一个固体内存块,以便我可以memcpy()在以后使用它.像这样:
typedef struct myStruct{
int count;
int myArray[count];
} myStruct;
Run Code Online (Sandbox Code Playgroud)
听起来你正在寻找灵活的阵列成员:
typedef struct myStruct
{
int count;
int myArray[];
} myStruct;
Run Code Online (Sandbox Code Playgroud)
然后,当您稍后分配它时:
myStruct *x = malloc(sizeof(myStruct) + n * sizeof(int));
x->count = n;
Run Code Online (Sandbox Code Playgroud)