【发布时间】:2017-11-12 06:15:21
【问题描述】:
这是在列表中创建链接的代码,我从互联网上阅读该链接以尝试理解 c 中的链接列表:
//insert link at first location
void insertFirst(int key, int data) {
//create a link
struct node *link = (struct node*) malloc(sizeof(struct node));
link->key = key;
link->data = data;
//point it to old first node
link->next = head;
//point first to new first node
head = link;
}
我真的不明白以下行作为一个整体是如何工作的:
struct node *link = (struct node*) malloc(sizeof(struct node));
更具体地说:
(struct node*)
因为我的理解是星号必须位于指针名称之前,但它位于结构名称的末尾。如果我错了,请纠正我,如果可以的话,请解释一下这是如何工作的?
【问题讨论】:
-
你不需要演员表。
-
正确
struct node *link = malloc (sizeof *link);然后if (link == NULL) { /* handle error */ }
标签: c struct linked-list malloc nodes