簡體   English   中英

在C中打印節點時出錯?

[英]Error while printing Nodes in C?

我正在嘗試打印節點中的內容,但顯示以下錯誤

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<它看起來也很可疑

看來您沒有在編譯所需的代碼。

錯誤使用. 電子郵件的成員運算符。 當您在顯示的代碼中使用->指針運算符時。 因此,代碼是不同的(錯誤與點有關,因為在您明確聲明了指針后,它表示需要結構或聯合成員)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM