malloc如何在C中产生列表的元素?

问题描述

这是我用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的目的是“建立”合法空间并为其提供指针。
代码中的以下几行确保合法空间包含构成节点的值。

这可能看起来很短,仅此而已。
(而且我认为您确认您现在已经明白了。否则,我认为这太短了以至于不礼貌。)