请问L=(linklist)malloc(sizeof(lnode))中()malloc和sizeof()括号里分别是什么含义,这两个可以一样

还有一种写法是:*L=(linklist*)malloc(sizeof(lnode)),这两个什么区别?谢谢大家了!!

malloc是动态开辟内存,函数返回为void型指针(指向开辟的内存空间)
前面那个括号是开辟内存的类型,如L=(linklist*)malloc(sizeof(lnode)),就是将原来malloc返回的void型指针强制定义为 linklist型(也就是你一开始定义的指针L的类型),这样才可以赋值给L.

sizeof(Inode)是指malloc开辟的内存空间的大小,这里就是指,这个大小为Inode型所占的容量.(例如sizeof(int),就是开辟一个整形的空间(4字节).分配两个int的空间就是2*sizeof(int))
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-11
malloc()是内存分配,里面单位是字节
sizeof()是获得类型的内存大小也是字节为单位

那么假设lnode 是一个变量类型的话。意思就是分配内存大小为sizeof(lnode)。
32位操作系统下:例如inode是一个int型那么malloc(sizeof(4))也就是分配4个字节大小的内存把malloc函数的返回地址赋值给L追问

我就是搞不明白(linklist)malloc(sizeof(lnode))里malloc前面那个括号和 sizeof后面的括号里该写什么,麻烦再解释下

本回答被网友采纳
相似回答