假设我有以下结构定义: -
struct structure
{
int a;
int array[];
}one;
当数组大小未被显示时,如何为上述结构分配内存?
答案 0 :(得分:3)
假设32位int
和8位char
,sizeof one
可能是4
。也就是说,array
是一个空(零长度)数组。通常,您将使用灵活的数组成员动态分配结构:
struct structure *two = malloc(sizeof *two + 32 * sizeof(int));
这使two
成为指向struct structure
字段中包含32个元素的array
的指针。