У меня проблемы с указателями. У меня есть функция, которая должна возвращать узел в связанном списке, функция должна возвращать указатель на переменную. Я в замешательстве и не вижу, что я делаю неправильно!
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;
}