Указатель, указывающий на возврат функции.Инициализация из несовместимого типа указателя - PullRequest
1 голос
/ 17 ноября 2010

У меня проблемы с указателями. У меня есть функция, которая должна возвращать узел в связанном списке, функция должна возвращать указатель на переменную. Я в замешательстве и не вижу, что я делаю неправильно!

data.h - заголовочный файл

int add(int num);
struct message *findMessage(int num);

typedef struct list_el message;

data.c - Связанный список.

    #include <stdio.h>
#include <stdlib.h>

struct list_el {
    int num;

    struct list_el *next;

};

typedef struct list_el message;
struct list_el *head, *tail;



int addNode(struct list_el *curr)
{
    if(head == NULL) {
        head = curr;

    } else {
        tail->next = curr;
    }

    curr->next = NULL;

    return 0;
}

int add(int num)
{
    message *curr;

    head = NULL;

    curr = (message*) malloc(sizeof(message));
    curr->num = num;
    addNode(curr);

    return 0;
}

message *findMessage(int num)
{
    message *curr;

    for(curr = head; curr != NULL; curr = curr->next) {
        if(curr->num == num) {
            return curr;
        }
    }
    return NULL;
}

Main.c - MAIN

#include <stdio.h>

#include "data.h"

int main(void)
{
 int num = 2;

 add(num);

 message *curr = findMessage(num);

 return 0;
}

1 Ответ

1 голос
/ 17 ноября 2010

Почему бы не включить определение struct list_el в заголовок? В противном случае main не сможет работать с ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...