【发布时间】:2015-03-04 22:13:46
【问题描述】:
我对 C 语言很陌生,现在正在上课,但在项目上遇到了困难。我们在这个项目中有一个称为符号的结构。我们在这个项目中还有一个称为 Node.js 的结构。节点有一个符号数组。我要做的就是将属性 Node.symbols 设置为另一个符号数组,如下所示:
int max = 256;
Symbol symbols[max];
Node node1;
node1.syms = symbols;
错误:比较“struct Symbol[256]”与“Struct Symbol *”类型时类型不兼容
我真的不明白为什么它认为符号是一个指针,而它对我来说似乎是一个符号数组。这可能很明显,但我无法修复它。
【问题讨论】:
-
这意味着
syms被声明为struct Symbol[256]。您需要一张一张地复制。仅供参考,symbols也是指针。如果你不明白这一点,你最好先复习你的教科书。 -
symbols 不是指针它是一个数组,但在 C 数组中非常接近指针。你能在这里发布节点是如何定义的吗?如果 node1.syms 是一个指针,你只能做那个赋值。
标签: c arrays pointers structure