Я получаю это:
LLIST *mylist[N];
Где N - количество строк во входном файле. Тогда mylist[i]
- указатель на i-й связанный список.
Я вызываю функцию
LLIST *list_add(LLIST **p, int i){
LLIST *n;
n = (LLIST *) malloc(sizeof(LLIST));
if (n == NULL)
return NULL;
n->next = *p; /* the previous element (*p) now becomes the "next" element */
*p = n; /* add new empty element to the front (head) of the list */
n->data = i;
return p;
}
Так что в моем основном я говорю что-то вроде
LLIST *mylist[N];
list_add(&mylist[0],1);
list_add(&mylist[0],2);
list_add(&mylist[1],3)
list_add(&mylist[1],4);
list_print(mylist[0]); // Print mylist[0]
list_print(mylist[1]); // Print mylist[1]
Моя функция Print_list:
Void *list_print(LLIST *n) {
if (n == NULL){
printf("list is empty\n");
}
while (n != NULL){
printf("%d",n->data);
n = n->next;
}
}
Когда я делаю list_print(mylist[0])
, он печатает 2 1
.
Когда я делаю list_print(mylist[1])
, я получаю ошибку сегментации.
Что происходит?