问题描述
这是我用C语言编写的程序代码,它使用ADT结构打印列表。
typedef struct list{
int data;
struct list *next;
}list;
int is_empty(const list *l){
return(l==NULL);
}
void print_list(list *h,char *title){
printf("%s\n",title);
while(h!=NULL){
printf("%d :",h -> data);
h = h -> next;
}
}
int main()
{
list list_of_int;
list* head = NULL;
head = malloc(sizeof(list));
printf("size of the list = %lu\n",sizeof(list)); //this has to be an unsigned long
head -> data = 5;
head -> next = NULL;
print_list(head,"single element list");
printf("\n\n");
return 0;
}
我的问题是,我们如何使用malloc()及其创建的内存来创建列表指针头?
解决方法
malloc的目的是“建立”合法空间并为其提供指针。
代码中的以下几行确保合法空间包含构成节点的值。
这可能看起来很短,仅此而已。
(而且我认为您确认您现在已经明白了。否则,我认为这太短了以至于不礼貌。)