结构内部的struct数组

时间:2014-04-10 19:57:45

标签: c struct

为什么我不能这样做:

 typedef struct _word{
      struct _word ws[ 28 ];
 }Word;

使用上面的代码我会得到错误:字段' ws'有不完整的类型。

为什么我能做到这一点:

 typedef struct _word{
      struct _word *wr[ 28 ];
 }Word;

我想要静态内存。

1 个答案:

答案 0 :(得分:3)

因为如果未完全定义结构,则无法计算要分配的对象的大小。正如其他人所提到的那样,试图推断出对象的大小是无限的回归。

但是你总是可以计算指针的大小。因此第二个版本有效。