Android C语言--动态内存分配

本文介绍了C语言中动态内存分配的相关函数,包括calloc、free、malloc和realloc的使用。详细解析了内存划分的区域,如栈区、堆区、全局区等。还讨论了静态与动态内存分配的区别,强调了栈溢出的问题,并给出动态内存分配和释放的示例,特别是realloc的两种情况。最后,提醒了内存分配中的注意事项,如何避免内存泄漏。
摘要由CSDN通过智能技术生成

C 内存管理函数
C 语言为内存的分配和管理提供了几个函数。这些函数可以在 <stdlib.h> 头文件中找到。

序号 函数和描述
1 void calloc(int num, int size);
在内存中动态地分配 num 个长度为 size 的连续空间,并将每一个字节都初始化为 0。所以它的结果是分配了 numsize 个字节长度的内存空间,并且每个字节的值都是0。
2 void free(void *address);
该函数释放 address 所指向的内存块,释放的是动态分配的内存空间。
3 void *malloc(int num);
在堆区分配一块指定大小的内存空间,用来存放数据。这块内存空间在函数执行完成后不会被初始化,它们的值是未知的。
4 void *realloc(void *address, int newsize);
该函数重新分配内存,把内存扩展到 newsize。
C语音里面的内存划分
栈区(栈内存,存放局部变量,自动分配和释放,里面函数的参数,方法里面的临时变量)
堆区(动态内存分配,C语音里面由程序员手动分配),最大值为操作系统的80%
全局区或静态区
常量区(字符串)
程序代码区
静态与动态内存分配
在程序运行过程中,动态指定需要使用的内存大小࿰

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安卓兼职framework应用工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值