C-结构的内存分配

时间:2013-11-01 16:29:07

标签: c memory-management structure

假设我有以下结构定义: -

struct structure
  {
   int a;
   int array[];
  }one;

当数组大小未被显示时,如何为上述结构分配内存?

1 个答案:

答案 0 :(得分:3)

假设32位int和8位charsizeof one可能是4。也就是说,array是一个空(零长度)数组。通常,您将使用灵活的数组成员动态分配结构:

struct structure *two = malloc(sizeof *two + 32 * sizeof(int));

这使two成为指向struct structure字段中包含32个元素的array的指针。