【发布时间】:2022-01-20 20:16:23
【问题描述】:
我在 C 中有一些初学者的问题,我试图将一些节点插入到链表中,但它始终为空。我无法更改booklist 的全局变量。下面是代码
typedef struct bookInfo {
int code;
char titre[50];
char auteur[50];
char editeur[50];
int date;
struct bookInfo *next;
struct bookInfo *prec;
} Book;
typedef Book *bookList;
bookList book_ref;
void newBook(Book *bk, int val)
{
Book *new_node = (Book *)malloc(sizeof(Book));
Book *last = bk;
new_node->code = val;
new_node->next = NULL;
if (bk == NULL)
{
bk = new_node;
return;
}
while (last->next != NULL)
last = last->next;
last->next = new_node;
return;
}
int main()
{
newBook(book_ref, 45);
printf("%p\n",book_ref);
newBook(book_ref, 42);
printf("%p",book_ref);
}
【问题讨论】:
-
调用
newBook(book_ref,45);不会改变book_ref。
标签: c data-structures linked-list