0

我正在用 C 创建一个程序,但我不确定是什么导致了错误,因为我对 C 编程比较陌生(指针很可怕)。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct Node {

   char firstName[100];
   char lastName[100];
   char email[100];
   struct Node * partner;

};

struct Node* head;

void main(void)
{
    GetNewNode("John", "Smith", "john.smith@hotmail.com");

}

struct Node * GetNewNode(char fN[100], char lN[100], char em[100]) {

   struct Node* newNode = (struct Node *)malloc(sizeof(struct Node));

   strcpy(newNode->firstName, fN);
   strcpy(newNode->lastName, lN);
   strcpy(newNode->email, em);

};

我似乎得到了错误:

error: conflicting types for 'GetNewNode'

只是寻求一些帮助来澄清发生了什么。谢谢!

4

2 回答 2

1

您需要在GetNewNode()之前添加声明/原型或定义它main()

在您的代码中,您不提供GetNewNode(). 当编译器到达该行时

GetNewNode("John", "Smith", "john.smith@hotmail.com");

它不知道 的签名GetNewNode()并假设它返回int。因此错误intstruct Node *指针是不兼容的类型。

于 2015-11-10T22:51:04.677 回答
0

只需在声明之前添加一个原型main

struct Node * GetNewNode(char fN[100], char lN[100], char em[100]);

或者完全移动GetNewNode之前的功能main

于 2015-11-10T22:51:18.430 回答