【问题标题】:dereferencing pointer to incomplete type in C code在 C 代码中取消引用指向不完整类型的指针
【发布时间】:2012-04-19 17:53:33
【问题描述】:

我调用了下面的函数并传递了一个结构指针。我在指向 currentTableItem 的地方收到错误“取消引用指向不完整类型的指针”->请帮助。

【问题讨论】:

  • currentTableItem 声明在哪里?
  • 那个结构的定义在哪里?

标签: c


【解决方案1】:

目前编译器似乎不知道struct md_CamsLatchTblStruct 的完整声明,可能是因为您使用了前向声明:

编译器看到:

struct md_CamsLatchTblStruct;

编译器看不到(未包含/定义在另一个源文件中):

struct md_CamsLatchTblStruct {
     int index;
     int addr;
     int mask;
     int startBit;
     // ..
};

【讨论】:

  • 我有 2 个结构......像这样......我通过指向函数 int read(struct TblStruct *defaultTable) 的指针传递 LatchTbl,如上所示 struct TblStruct { int index; int16_t 数据;整数地址;整数开始位; int16_t 掩码; }; struct TblStruct LatchTbl[]={ {0 00, 0, 0, 0xFF, 0}, {1 00, 1, 0, 0xFF, 1}, {2 00, 2, 0, 0xFF, 2}};
  • 我没有说你没有声明。我说在编译您显示的代码时声明不可见。该声明出现在哪里?
猜你喜欢
  • 1970-01-01
  • 2013-08-07
  • 2013-12-22
  • 2013-03-11
  • 1970-01-01
相关资源
最近更新 更多