我创建了一个程序,它使用指针和节点作为链表。我将问题缩小到以下代码行。每次我的程序到达printf部分时都会崩溃。
typedef struct book {
char title[50];
char author[50];
}BOOK;
typedef struct Node {
struct Node* next;
BOOK info;
int priority;
}node;
我将问题缩小到以下代码行。每次我的程序到达printf部分时都会崩溃。
void peek(node **head) {
node *temp = *head;
printf("%s by %s has been peeked.",temp -> info.title , temp -> info.author);
}
非常感谢任何帮助!
编辑:
在我的主要内容中: BOOK bookDetails(){
BOOK b;
printf("\nEnter book title: ");
fflush(stdout);
scanf("%s", b.title);
printf("\nEnter the author: ");
fflush(stdout);
scanf("%s",b.author);
return b;
}
..和主要(无效):
node *queue = NULL;
case 4: peek(&queue);
break;
在其他情况下,我使用BOOK b将信息添加到&队列以链接到struct book
答案 0 :(得分:0)
BOOK b;
结束时,bookDetails();
超出了范围
你是明智的以太:
此行的内容node *queue = NULL;
英文:
将一个新的指针分配给一个节点struct然后,将指针设置为NULL。
当你通过它来自然地查看时,你会得到一些错误,因为你不能使用NULL指针。
你有Node的链表结构的开头,但是我看到你使用这个指针指向队列。除非您想要多个链表,否则我会说删除队列指针是一件好事,可以降低复杂性。
在这里,我喜欢你所做的,以消除所有那些人的需要,但乍一看node *temp = *head;
看起来像temp == head远非真相
如果您有任何问题,请询问。
祝你好运:)