【问题标题】:Get Size of Struct in C在 C 中获取结构的大小
【发布时间】:2019-03-19 11:32:34
【问题描述】:

如何获取结构指针的大小..

struct person **angest=NULL;

在这个结构中有 22 人注册商。如何使用 sizeof 获得 Count 22?有可能吗?

【问题讨论】:

  • 没有。 sizeof 如何知道(在编译时)它指向的位置(在运行时)的大小?另外,“In this struct are 22 people registrar”是错误的,它显然是一个空指针。
  • 没有。特别是当它是指向值为 NULL 的指针的指针时。
  • 结构体在编译时变成了文本文件中的数据。这就是声明。
  • @Blaze sizeof 不是编译时间。它可以得到一个 VLA 的大小。
  • @Broman 这不是 VLA,所以它是在编译时完成的。 sizeof 仅在 VLA 运行时完成。有关详细信息,请参阅此答案:stackoverflow.com/a/47336577/10411602

标签: c struct sizeof


【解决方案1】:

您似乎正在使用 malloc 分配人员,例如
angest=malloc(sizeof(struct person *)*22);(您现在已经分配了 22 个指向结构的指针)

那么使用sizeof 是不可能得到这个数字22 的。动态分配数组的大小无法在编译时计算。您必须自己保持这个尺寸,例如static int nPersons;

【讨论】:

  • 好的,非常感谢
猜你喜欢
  • 2011-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多