免费观看美人草电影:C语言中,(Node *)malloc(sizeof(Node))是什么意思?

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 13:28:19
其中Node是以定义好的结构体。
尤其是,为什么malloc前要加(Node *)强制转换?
为什么不能把sizeof()换成strlen(),这两个又有什么区别?

sizeof()是得出类型占用的字节空间,如sizeof(int),代表int类型在当前编译器下占用多少个字节。

strlen()是得出字符串长度的,如strlen("test")返回4

(Node *)malloc(sizeof(Node))是指在malloc成功后返回一个Node类型的指针

C语言及数据结构(C语言版)中,(Node *)malloc(sizeof(Node))是用来申请动态存储空间的。
例如:
a=(Node *)malloc(sizeof(Node))就在内存中给a分配了一个动态的存储空间。用完自动释放掉。

sizeof 是c语言的关键字,是运算符之一,用开求表达式,数据类型的在内存中所占的字节数目

strlen()是函数,是求字符串长度的函数

至于为什么这样强制转换,是因为malloc()返回的事void指针,必须强制指向你需要的类型

因为malloc返回的指针是void型的,需要前面加(Node *)显式转换为指向Node的指针。
sizeof是取一个结构体的大小
整句的意思就是给指向Node的指针分配了一块空间。

(Node *)malloc(sizeof(Node))实在内存中申请一个空间,用完再释放!!