L = (LNode * )malloc(sizeof(LNode)) 与L = (LNode)malloc(sizeof(LNode)) 区别
时间: 2023-11-21 17:04:17 浏览: 52
这两个语句的区别在于返回的类型不同。
第一个语句中,定义了一个指向 LNode 结构体类型的指针 L,然后使用 malloc 函数动态分配了 LNode 结构体类型的内存空间,并将其地址赋值给指针 L。因此,L 的类型是 LNode *,即指向 LNode 类型的指针。
第二个语句中,定义了一个 LNode 类型的变量 L,然后使用 malloc 函数动态分配了 LNode 结构体类型的内存空间,并将其地址赋值给变量 L。因此,L 的类型是 LNode,即 LNode 类型的变量。
总的来说,第一个语句更常见,因为在链表等数据结构中通常需要使用指针来指向节点,而第二个语句则不太常见。
相关问题
L = (LNode *)malloc(sizeof(LinkList));是什么意思
这是一个动态内存分配的语句,用于在 C 语言中创建一个链表的头节点。LNode 是链表节点的结构体类型,LinkList 是链表的类型。malloc 函数用于在堆上分配一块指定大小的内存空间,并返回该空间的首地址。在这里,sizeof(LinkList) 表示需要分配的内存空间大小,即链表头节点的大小。
{Lnode*new;New=(Lnode*)malloc(sizeof(Lnode));
这是一个关于 C 语言的问题,我可以回答。这段代码是在动态分配内存空间,用于创建一个新的链表节点。其中,Lnode 是链表节点的结构体类型,new 是指向新节点的指针,malloc 函数用于分配内存空间,sizeof(Lnode) 表示需要分配的内存空间大小。