首页 > 解决方案 > 在具有类型成员的结构定义处编译错误,指向 C 中的结构数组的指针

问题描述

首先,这是下面的代码制作错误

typedef struct alpha_node_t_ {
    struct alpha_node_t_ (*nodePtr)[(26)][(8)];
} alpha_node_t;

在 VS 2017 中编译此代码时,它运行良好并且没有出现警告。

但是,当它在 C11: gcc 4.9.2 上运行时,我在此代码中遇到以下错误。

submission.c:15:26: error: array type has incomplete element type
  struct alpha_node_t_ (* nodePtr)[(26)][(8)];
                          ^

什么是问题?我认为因为成员的类型无论如何都是指针,所以成员大小将是固定的,或者编译器会知道成员大小。

gcc 如何在这一点上产生错误,VS2017 没有?我应该怎么做才能避免这个错误?

标签: ccompiler-errorsstructure

解决方案


推荐阅读