C语言动态数组详细介绍
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,这篇文章主要介绍"C语言动态数组详细介绍",在日常操作中,相信很多人在C语言动态数组详细介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"C语言动态数组详细介绍"的疑惑
千家信息网最后更新 2025年01月21日C语言动态数组详细介绍
这篇文章主要介绍"C语言动态数组详细介绍",在日常操作中,相信很多人在C语言动态数组详细介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"C语言动态数组详细介绍"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
目录
内存分配函数malloc calloc realloc free
内存操作函数 memset memcpy memmove
二维动态数组的建立和释放
内存分配函数malloc calloc realloc free
堆内存分配函数 | 说明 |
---|---|
void * malloc(int n) | 形参n为要求分配的字节数。需要注意的是,malloc函数分配得到的内存空间是未初始化的。必须使用memset函数来初始化。 |
calloc(10, sizeof(char)); | 两个参数:单元数,单元的size。分配内存,并清理内存。初始内容全部为0; |
realloc(p,10); | 调整内存的大小; 分配的内存空间并未初始化;使用新返回的地址, |
free(void * p) | 释放指针p所指向的堆上的空间; |
malloc() 不对分配的内存空间做初始化,内存上原有的值不会被清理。
realloc(),在原有内存基础之上,在堆中间增加连续的内存,如果原有内存没有连续空间可扩展,则新分配一个空间,将原有内存copy到新空间,然后释放原有内存。
p = malloc(10); //直接申请4k的空间。内存页大小。 返回值是无类型指针void *,可以强制转换。free(p);char *p = calloc(10, sizeof(char)); //两个参数:单元数,单元的size。 分配内存,并清理内存char *p2 = realloc(p,10); // 在原有内存基础之上,在堆中间增加连续的内存,如果原有内存没有连续空间可扩展,则新分配一个空间,将原有内存copy到新空间,然后释放原有内存。char *p2 = realloc(NULL,20); //此时,和malloc等价
realloc和malloc一样,只分配内存,不清理,需要手动初始化。
// 复杂数据内存放在堆里面
内存操作函数 memset memcpy memmove
memset(buf,0,sizeof(buf));//三个参数分别是:要设置的内存地址,要设置的值,值占的内存的字节数。 将一块内存初始化为0最长见的方法。extern void *memset(void *buffer, int c, int count) memcpy(void *dest,void *src,unsigned int count);//将buf1的地址的内存内容全部拷贝到buf2,拷贝大小为第三个参数:字节一定确保内存区域没有内存区域重叠。memmove(buf2, buf1, sizeof(buf1));//内存移动,并没有改变原始内存的值。
二维动态数组的建立和释放
在创建动态数组的过程中我们要遵循一个原则,那就是在创建的时候从外层往里层,逐层创建;
而释放的时候从里层往外层,逐层释放。
int main(){ int num1,num2; num1 = 4; num2 = 5; int **array = (int **)calloc(num1,sizeof(int *));//开辟空间,num1个一维int*型指针 for(int i=0;i到此,关于"C语言动态数组详细介绍"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
内存
分配
空间
动态
数组
函数
语言
单元
参数
指针
学习
地址
大小
字节
二维
三个
两个
内容
区域
基础
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发经理绩效目标
创造与魔法抄家服务器怎么进
江阴工程软件开发资费
洛阳市网络安全教育平台
蓬莱游戏软件开发推荐
手机云数据库可以删吗
数据库表中有4种索引类型
张平数据库技术与实验指导
inform数据库
服务器需要配地址吗
企业社交网络安全解决对策
苏州汽车控制器底层控制软件开发
国际数据库的无粒石陨石图片
词学资料数据库
网络账户服务器怎么加入
免费好用的数据库接口
候鸟网络技术有限公司
四川交友软件开发费用是多少
安卓数据库读取优化
家里电脑访问不了公司的服务器
我的世界服务器管理系统
展讯软件开发笔试题
使用流量时提示无法连接到服务器
服务器日志路径
惠州精益软件开发
网络安全与取证分析
gen9服务器
网络安全教育班主任工作手册
绝地逃生服务器翻译
网络安全防火技术