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

2024-11-01 19:30:35
推荐回答(2个)
回答1:

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

sizeof(Inode)是指malloc开辟的内存空间的大小,这里就是指,这个大小为Inode型所占的容量.(例如sizeof(int),就是开辟一个整形的空间(4字节).分配两个int的空间就是2*sizeof(int))

回答2:

malloc()是内存分配,里面单位是字节
sizeof()是获得类型的内存大小也是字节为单位

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