C 如果链表中没有添加任何内容,并且您尝试打印该变量,那么链表是如何工作的
我有一个链表,最后想把它打印出来。我的问题是,如果结构中的链表变量保持不变,并且没有向列表中添加任何内容,如果我尝试使用C 如果链表中没有添加任何内容,并且您尝试打印该变量,那么链表是如何工作的,c,linked-list,C,Linked List,我有一个链表,最后想把它打印出来。我的问题是,如果结构中的链表变量保持不变,并且没有向列表中添加任何内容,如果我尝试使用打印,而(school->list!=NULL)这是否可行 注意:我在任何时候都没有使列表为空,我只是分配了名称,没有触及列表 struct School{ char *name; Student *list; <--- Linked list } School; struct Student{ char *name; Studen
打印,而(school->list!=NULL)
这是否可行
注意:我在任何时候都没有使列表为空,我只是分配了名称,没有触及列表
struct School{
char *name;
Student *list; <--- Linked list
} School;
struct Student{
char *name;
Student *next;
} Student;
struct学校{
字符*名称;
学生*list;Student!=NULL)
到(学校->列表!=NULL)
请参见此示例以打印列表:
#include <stdio.h>
#include <stdlib.h>
struct test{
int code;
struct test *next;
};
void pri(struct test *); // As you dont whant to change the values of list.
void cre(struct test **);// This put list at the start
int main(void){
struct test *head;
head = NULL; // you start from null.
cre(&head,5);
cre(&head,10);
pri(head);
return 0;
}
void cre(struct test **head,int x){
struct test *tmp;
tmp = malloc(sizeof(struct test));
tmp->code = x;
tmp->next = (*head);
(*head) = tmp;
}
void pri(struct test *head){
while(head){ // while we dont reach end of list.
printf("%d ",head->code);
head = head->next; // Go to our next element
}
printf("\n");
}
#包括
#包括
结构测试{
int代码;
结构测试*下一步;
};
void pri(struct test*);//因为您不需要更改list的值。
void cre(struct test**);//此放置列表位于开始位置
内部主(空){
结构测试*头;
head=NULL;//从NULL开始。
综合招聘主任(5名),;
综合招聘主任(10人);
pri(负责人);
返回0;
}
无效cre(结构测试**头部,int x){
结构测试*tmp;
tmp=malloc(sizeof(struct test));
tmp->code=x;
tmp->next=(*头部);
(*头)=tmp;
}
无效优先级(结构测试*头){
while(head){//当我们还没到列表的末尾时。
printf(“%d”,标题->代码);
head=head->next;//转到我们的下一个元素
}
printf(“\n”);
}
我希望这个程序能帮助你打印列表。当然,如果我们在列表的末尾插入一个元素等,这会起作用。在你的论文中画一个图,以便更好地理解列表。访问未分配的内存会导致未定义的行为。@EugeneSh。不过我不是在访问它,我只是用while(school->list!=NULL)检查它是否为NULL。那么,如果我没有使用列表,它会是空的吗?@John如果你没有设置它,为什么它会是空的?如果你使用
calloc()
分配内存,在典型的环境中,很有可能是NULL
。如果malloc()
,则值是不确定的。如果从未为变量赋值,则其值是未定义的。它可能是0(NULL),也可能是任何垃圾。使用此类值进行决策会产生未定义的行为。避免这种情况的方法:使用静态内存、使用calloc、使用memset、使用类似构造函数的函数。