【发布时间】:2014-09-21 04:51:18
【问题描述】:
我有全局结构:
typedef struct node{
int numOfOccur;
struct node *children;
}Node;
Node *root;
然后在我正在做的另一种方法中:
root.numOfOccur = 0;
root.children = (Node *)calloc(27, sizeof(struct node));
Node* temp = &root;
然后我尝试在 while 循环中检查子数组的某个索引是否为 NULL。 我正在尝试通过以下方式获取价值
(temp->children)[c]
它说 如果标量类型('struct node' 无效),语句需要表达式 我尝试了以下所有方法:
temp -> children[c]
(*temp).children[c]
但两者都不起作用..
下面的代码效果不好..它说“间接需要指针操作数('struct node'无效)。
*(*temp).children[c]
【问题讨论】:
-
请注意
(temp->children)[c]不起作用,因为children不是数组而是指针,因此您可以访问numOfOccur或children,这是该结构的所有成员。 -
@Jack 好吧,据我所知,您可以使用括号表示法来访问指针数组的索引..
-
你可以从: Node *root;只产生一个指针。你还需要它指向的东西,比如 Node *root = malloc( sizeof( Node ) );代码中还有一些其他问题,但这是第一个执行错误行。