Конфликт типов со связанными списками

Я нахожусь в процессе создания программы на 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 * указатель несовместимые типы.

Другие вопросы по тегам