我对链接列表的实现有疑问,我得到了基本的想法,但我有一个问题:
new_node = (node*) malloc(sizeof(node))
为什么我们在这里使用(节点*)?为什么我们不说:
new_node = malloc(sizeof(node))?
提前感谢您的回答。
typedef struct node{
int value;
struct node* next_node;
}node;
node* create_node(int v){
node* new_node;
new_node=(node*) malloc(sizeof(node));
if(new_node==NULL){
fprintf(stderr, "Allocation problem.\n");
exit(1);
}
new_node->value=v;
new_node->next_node=NULL;
return new_node;
}
答案 0 :(得分:2)
malloc ()
的返回类型是一个void指针。
这个void指针被安全地提升为struct类型而不进行任何转换。
因此您无需转换malloc()
的结果。
但是包含演员是一个很好的编码实践。 您可以阅读详细的答案here。 更正:@UnderDog