Android C语言--动态内存分配
2023-09-14 09:05:08 时间
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%
全局区或静态区
常量区(字符串)
程序代码区
静态与动态内存分配
在程序运行过程中,动态指定需要使用的内存大小,手动释放,释放之后这些内存还可以被重新使用。
静态内存分配,分配内存大小的是固定,产生的问题:
1.很容易超出栈内存的最大值
2.为了防止内存不够用会开辟更多的内存,容易浪费内存。
动态内存分配,在程序运行过程中,动态指定需要使用的内存大小&#x
相关文章
- android开机动画多长时间_Android开机动画原理分析
- android 常用加密,分享一下Android各种类型的加密
- android进阶之了解Android系统与开机过程
- mac 电脑android环境变量设置,mac上Android环境变量配置[通俗易懂]
- android 安装p12证书,如何在Android中使用p12证书(客户端证书)
- android 之旋转罗盘 风车 开发[通俗易懂]
- android 系统浏览器 源码-Android 最最最简单的浏览器代码
- 【错误记录】Android 命令行执行 7zr 可执行程序报错 ( Cannot run program “7zr“ : error=13, Permission denied )
- 【错误记录】Android 应用安装后出现两个启动图标 ( 排查应用及依赖库中配置了 android.intent.category.LAUNCHER 的 Activity )
- 【错误记录】Android Studio 集成 ARoute 编译报错 ( 兼容 support 库和 androidx 库 | add ‘tools:replace=“android:appCo )
- android的上下文菜单和上下文操作模式详解手机开发
- [android] 标题部分管理详解手机开发
- android调用服务端的js详解手机开发
- Android端Vivaldi 3.6发布:引入Page Action功能 可自定义网页外观
- Android系统与Linux之间的联系(android和linux)
- Android实现PHP连接MySQL进行数据交互(android通过php连接mysql)
- 使用Android实现连接MySQL数据库:实现快速数据交互与管理(android连接mysql数据库)