malloc函数与free函数

本文介绍了C语言中动态内存分配的重要函数malloc和free。malloc用于为链表等数据结构分配内存,其返回的指针指向分配的内存块,而free函数则负责释放已分配的内存,避免内存泄漏。在使用malloc分配结构体时,应注意正确计算所需内存大小,以防止破坏malloc的内部结构,导致free函数无法正常工作。
摘要由CSDN通过智能技术生成

链表这种数据结构在C语言中必不可少,它可以实现线性表的动态存储,而链表又要靠malloc函数来实现。
malloc函数: void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针(NULL)。
malloc函数的作用是让系统寻找空闲地址后为你分配一块指定大小的空间来给你使用,这一块空间其实要比你申请的空间大一些,它包含两个部分:1.你申请的空间;2.记录这个空间信息的空间。malloc使用结构体来储存空间信息,这个结构体是这样的:

struct mem_control_block { 
    int is_available;    //一般来说应该是一个可用空间的首地址,但这里英文单词却显示出空间是否可用的一个标记
    int size;            //这是实际空间的大小 
    };

free函数接受一个指针,然后将指针指向的地址还给系统。(但它不会改变指针的指向,所以一般在free之后还要将指针置空,不然你的这个指针就会变成野指针)一般来说,malloc函数应该和free函数成对出现,防止向系统要的内存太多系统不高兴。

free()函数的源代码是这样的:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值