单链表创建节点

如何理解List *list = malloc(sizeof(*list));

(链表是由节点构成的,创建节点会用到这个)

在C语言中,`malloc`函数用于动态分配内存。`List *list = malloc(sizeof(*list));`这行代码的含义可以从几个方面来理解:
1. malloc`函数:`malloc`是memory allocation(内存分配)的缩写,它用于在堆区(heap)上分配指定字节数的内存空间,并返回一个指向这块内存的指针。如果分配失败,则返回`NULL`。


2.sizeof(*list):`sizeof`运算符用于确定其操作数的大小(以字节为单位)。在这里,`*list`表示`list`指针指向的类型的大小。因为`list`是一个指向`List`类型的指针,`*list`就是`List`类型的变量。        因此,`sizeof(*list)`计算的是`List`类型变量的大小。
3. List *list:这是一个指针声明,表示`list`是一个指向`List`类型的指针。
将这三部分结合起来,这行代码的步骤如下:
     首先,`sizeof(*list)`计算`List`类型变量的大小。
     然后,`malloc(sizeof(*list))`调用`malloc`函数,请求分配一块足够存放一个`List`类型变量的内存空间。
     最后,将分配的内存空间的地址赋值给`List`类型的指针`list`。
所以,这行代码的意思是
      分配足够存放一个`List`类型变量的内存空间。
      将这块内存空间的地址赋给名为`list`的指针。

需要注意的是,`malloc`分配的内存是未初始化的,因此在使用这块内存之前,应该对其进行初始化。例如:

List *list = malloc(sizeof(*list));
if (list != NULL) {
    memset(list, 0, sizeof(*list)); // 使用memset来初始化内存
    // ... 使用list指向的内存 ...
}


此外,在使用完动态分配的内存后,应该使用`free`函数释放这块内存,以避免内存泄漏:

free(list);
list = NULL; // 好习惯:释放后置空指针


 /

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值