与链接列表冲突的类型

时间:2015-11-10 22:46:08

标签: c pointers linked-list ansi-c

我正在用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'

只是寻求一些帮助来澄清正在发生的事情。谢谢!

2 个答案:

答案 0 :(得分:1)

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

在您的代码中,您没有为GetNewNode()提供原型。当编译器到达

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

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

答案 1 :(得分:0)

在声明main之前添加原型:

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

或者在GetNewNode之前完全移动main