在创建链表时,我们创建了一个节点结构,它由数据和指向下一个节点的指针组成。稍后当我们创建一个将元素追加到链表上的函数时,我们创建了一个临时节点来存储输入的数据。
让我们考虑以下程序-
#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 行中,为什么我们需要在 malloc 函数之前提到 (struct node*)
?
那有什么意义呢?
我的第二题集:
如果我们正在制作一个双向链表,其节点结构由 2 个指针组成(用于下一个和上一个节点),我们是否还要初始化一个结构节点类型的指针(用于遍历列表)?
在那种情况下是否有不同的方法来初始化指针?
最佳答案
意义在于让你的程序出bug,
malloc 将返回 void*
当你分配给你的 struct somthing*
它会自动转换。
关于c - 链表节点内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46380673/