我正在用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'
只是寻求一些帮助来澄清正在发生的事情。谢谢!
答案 0 :(得分:1)
您需要为GetNewNode()
添加声明/原型,或在main()
之前定义它。
在您的代码中,您没有为GetNewNode()
提供原型。当编译器到达
GetNewNode("John", "Smith", "john.smith@hotmail.com");
它不知道GetNewNode()
的签名,并假定它返回int
。因此,错误int
和struct Node *
指针是不兼容的类型。
答案 1 :(得分:0)
在声明main
之前添加原型:
struct Node * GetNewNode(char fN[100], char lN[100], char em[100]);
或者在GetNewNode
之前完全移动main
。