关于动态内存的分配和释放

      动态内存的分配和释放,通常用在数据结构中的链表、树和图结构中。下面简单探讨一下这方面的知识。

我们都知道,使用函数malloc、函数free和运算符sizeof来实现的。

1、 函数malloc的原型是:void* malloc(unsigned int size);

     (1)malloc函数的主要作用是在内存中分配一个长度为size的连续存储空间。其返回值是一个指向分配空间的起始位置的指针。如果分配失败,将返回NULL。

     (2)如果要为类型为stuct node的结构分配一块内存空间,可以使用一下语句来实现:p=(struct node*)malloc(sizeof(struct node));

               sizeof(struct node)表示计算 结构体类型需要占用的字节数,struct node*是将函数的返回值类型void*转换为指向结构体指针类型类型。

               如果分配成功,把该内存区域的起始地址返回给指针p。

2、函数free的原型是:void free(void *p);

     (1)free函数的作用是释放p指向的内存空间。如free(p); 。

3、注意的是:函数malloc和free一般是成对使用,成对出现的。在使用完内存后,采用free进行释放。

                          使用函数malloc时,最好要测试是否分配成功。

                           已经释放掉的内存不可以重新使用。

**************************************************************************************************************************************************************************************

❤永葆一颗纯洁、宽容平和、仁慈谦卑和意气风发的心!

态度决定一切     努力改变命运

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值