与链表冲突的类型
Conflicting types with linked lists
我正在用 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'
只是寻求一些帮助来澄清发生了什么。谢谢!
您需要为GetNewNode()
添加一个declaration/prototype或在main()
之前定义它。
在您的代码中,您没有为 GetNewNode()
提供原型。当编译器到达行
GetNewNode("John", "Smith", "john.smith@hotmail.com");
它不知道 GetNewNode()
的签名,并假定它是 returns int
。因此,错误 int
和 struct Node *
指针是不兼容的类型。
在声明之前添加一个原型 main
:
struct Node * GetNewNode(char fN[100], char lN[100], char em[100]);
或将整个GetNewNode
函数移动到main
之前。
我正在用 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'
只是寻求一些帮助来澄清发生了什么。谢谢!
您需要为GetNewNode()
添加一个declaration/prototype或在main()
之前定义它。
在您的代码中,您没有为 GetNewNode()
提供原型。当编译器到达行
GetNewNode("John", "Smith", "john.smith@hotmail.com");
它不知道 GetNewNode()
的签名,并假定它是 returns int
。因此,错误 int
和 struct Node *
指针是不兼容的类型。
在声明之前添加一个原型 main
:
struct Node * GetNewNode(char fN[100], char lN[100], char em[100]);
或将整个GetNewNode
函数移动到main
之前。