在创建链表时,我们创建一个节点结构,它由数据和指向下一个节点的指针组成。后来,当我们做一个函数将元素添加到链表时,我们创建一个临时节点来存储输入的数据。链接列表节点内存分配
让我们看看下面的程序 -
#include<stdio.h>
struct node
{
int data;
struct node* link;
}
struct node* root=NULL;
void main(append)
{
struct node* temp;
temp= (struct node*)malloc(sizeof(struct node))
.....
}
我的第一个问题集:
在第11行,我们为什么还要提(struct node*)
malloc函数之前?
那是什么意思?
我的第二个问题集:
如果我们做一个双向链表这将有一个节点结构,其中包括2个三分球(对下一个和前一个节点),将我们还初始化一个指针(用于遍历结构节点类型的列表)?
在这种情况下是否有不同的方式来初始化指针?
谁告诉你,你需要的是什么?它甚至非常沮丧。一般来说,绝对不要使用不必要的演员,他们终有一天会落在你的头上。如果你从你的C书中得到了这些,可以找一个更好的。如果来自一些模糊的YouTube视频,博客或在线教程:获取一本好的C书。 – Olaf
请注意,如果您使用C++编译器编译C代码,那么该投射将是必要的。在C语言中没有必要仅由C编译器编译。另请注意[我是否将'malloc()'的结果转换为?](http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc) –
而不是'temp = malloc( sizeof * temp);'简单 - 不是吗? – chux