Конфликт типов со связанными списками
Я нахожусь в процессе создания программы на 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 ответа
Решение
Просто добавьте прототип перед объявлением main
:
struct Node * GetNewNode(char fN[100], char lN[100], char em[100]);
Или двигаться полностью GetNewNode
функционировать перед main
,
Вам нужно добавить объявление / прототип для GetNewNode()
или определите это раньше main()
,
В вашем коде, как есть, вы не предоставляете прототип для GetNewNode()
, Когда компилятор достиг строки
GetNewNode("John", "Smith", "john.smith@hotmail.com");
он не знает подписи для GetNewNode()
и это предполагает, что это возвращает int
, Отсюда и ошибка, int
а также struct Node *
указатель несовместимые типы.