c - 在 C 中打印节点时出错?

标签 c structure nodes

我正在尝试打印节点中的内容,但它显示以下错误

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);
        }

最佳答案

可能是你的结构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<看起来也很可疑

关于c - 在 C 中打印节点时出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19371941/

相关文章:

c++ - 配置 KDevelop

c - 为什么我们在 C 中有 unsigned 和 signed int 类型?

字符数组 - 为什么 for 循环不是无限的?

java - 用于分析Java源代码的API

c - 结构填充和包装

java - 无法将 String 转换为双向链表节点

java - 加速 xpath

c - 为什么它说 'expected declaration specifiers before ' main''

javascript - 如何在 NodeJS 循环内处理多个 Google Places API 请求?

c - 解析和嵌套指针