我正在尝试打印节点中的内容,但它说出了以下错误
main.c: In function 'main':
main.c:83:37: error: request for member 'emails' in something not a structure or union
printf("%s\n", tmpNodesUnique[l].emails);
^
运行以下代码后出现上述错误。我在这里做错了什么?
Node *tmpNodesUnique[nodesCount];
int uniqueFound = 0;
tmpNodesUnique[0] = &tmpNodes[0];
for (k=1; k<10; k++){
if (strcmp(tmpNodesUnique[uniqueFound]->emails, tmpNodes[k].emails) != 0){
tmpNodesUnique[++uniqueFound] = &tmpNodes[k];
}
}
for (k=0; k<=uniqueFound; k++){
tmpNodesUnique[k]->emails;
}
for(l = 0; l <= nodesCount; l++){
printf("%s\n", tmpNodesUnique[l]->emails);
}
答案 0 :(得分:0)
您的结构Node
可能定义为
typedef struct {
char *emails;
} Node;
这意味着如果您要打印成员emails
,则必须使用.
运算符,而不是->
运算符
for(l = 0; l <= nodesCount; l++){
printf("%s\n", tmpNodesUnique[l].emails);
}
正如评论中指出的那样,以下一行什么都不做,这是一个不完整的陈述
for (k=0; k<=uniqueFound; k++){
tmpNodesUnique[k]->emails;
}
此外,请确保您真的想要k<=
而不是k<
它看起来也很可疑
答案 1 :(得分:0)
看起来你没有编译你期望的代码。
错误使用.
成员运算符来处理电子邮件。虽然您在显示的代码中有一个->
指针运算符。因此代码是不同的(并且错误与点相关,因为它声明在您明确声明指针时它需要结构或联合成员。)