【C语言总结】C语言动态内存分配

本文介绍了C语言中动态内存分配的相关知识,包括malloc、calloc、realloc和free函数的使用,以及动态内存分配的常见错误和注意事项。动态内存分配允许在运行时为长度未知的数组分配内存,malloc和calloc用于分配内存,calloc会初始化为0,realloc可以改变已分配内存的大小,而free用于释放内存。程序员需要注意检查分配是否成功,避免内存泄漏和越界访问等错误。
摘要由CSDN通过智能技术生成

数组的元素存储与内存中连续的位置,当一个数组被声明时,它所需要的内存在编译时就被分配,但是我们也可以用动态内存分配在运行时为它分配内存。

1.malloc和free

C语言库函数提供了两个函数,malloc和free,分别用于执行动态内存分配和释放。这些函数维护一个可用的内存池。

当程序员需要一些内存时,调用malloc函数,malloc从内存中提取一块合适的内存,并向该程序返回一个指向这块内存的指针。

这块内存此时并没有以任何方式进行初始化,如果需要对这块内存进行初始化,要么手动进行初始化,要么使用calloc函数。当申请的内存不再使用时,程序调用free函数把它归还给内存池。

这两个函数的声明如下所示:

void* malloc(size_t size);
void* free(void* pointer);

malloc的参数就是需要分配的字节数,如果内存池中的可用内存可以满足这个需求,malloc就返回一个指向被分配的内存块起始位置的指针。

malloc分配一块连续的内存,所以如果内存池不够你需要分配的内存,它会返回一个NULL指针,所以对每个从malloc返回的指

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值