繁体   English   中英

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

[英]how does malloc produce an element of a list in 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 的目的是“制造”合法空间并提供指向它的指针。
代码中的以下几行确保合法空间包含构成节点的值。

这可能看起来很短,但就是这样。
(而且我想你确认你现在明白了。否则我会认为它太短而不能礼貌。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM