【发布时间】:2020-12-12 01:13:30
【问题描述】:
在代码中,我们可以看到在*new_node 中分配了一个指针。但在C *new_node 中表示new_node 的内容。那么,它的原因是什么?为什么它没有造成任何问题?
Node *create_node(int item, Node *next)
{
Node *new_node = (Node *)malloc(sizeof(Node)); //isn't it receiving the pointer as content of(*new_node) new_node?
if (new_node == NULL) {
printf("Error! Could not crate a new Node\n");
exit(1);
}
new_node->data = item;
new_node->next = next;
}
【问题讨论】:
-
等等,你到底遇到了什么问题?你能把小文本改写成没有意义吗?
-
new_node分配给,而不是*new_node。从技术上讲,这是一个初始化,与Node *new_node; *new_node = malloc(sizeof(Node));不同,没有任何意义。 -
您是否对使用
Node *new_node = ...而不是Node* new-node = ...感到困惑?它们的意思是一样的。
标签: c pointers struct linked-list return