C语言数组的动态分配内存和静态分配内存
在日常的编程中,我们难免会用到数组,很多时候由于静态开辟数组空间,导致很多空间浪费又或是空间不足,那么这时候就需要用到动态开辟数组内存。下面就介绍这两种初始化数组的方式:
一、静态分配
指定数组长度
//直接用数字
int arr[10];//用宏定义define
#define MAXSIZE
int arr[MAXSIZE];//用const
const int size = 10 ;
int arr[size];
不指定数组长度
//一维数组
int arr[] = {0,1,2};//字符数组
字符串数组初始化://数组长度为3,没有'\0'
char arr0[] = {'a','b','c'}; //数组长度为4 ,有'\0'
char arr1[] = {'a','b','c','\0'};//数组长度为4,字符串后面自动补上 '\0'
char arr2[] = "C++";
二、动态分配
一维数组
//size 可以由用户输入
int *arr = (int *)malloc(sizeof(int)*size);
二维数组
//row 和 col 可以由用户输入
int **array = (int **)malloc(sizeof(int)*row);
for(i = 0; i < row; i++) array[i] = (int *)malloc(sizeof(int)*col);
多维数组
以此类推…
以上就是这动静两种方式去初始化数组,在日常的编程中,可以根据需要选择合适的开辟内存的方式。
C语言数组的动态分配内存和静态分配内存相关推荐
- 静态分配内存和动态分配内存
首先,在使用动态分配内存技术前,必须明白自己在做什么,这样做与其它的方法有什么不同,特别是会产生哪些负面影响,天下没有免费的午餐.动态分配内存与静态分配内存的区别: 1) 静态内存分配是在编译时完成的 ...
- 内存的静态分配和动态分配的区别【转】 静态分配内存与动态分配内存的区别
内存的静态分配和动态分配的区别[转] 来源: <http://blog.csdn.net/liuchao1986105/article/details/6724392> 内存的静态分配和动 ...
- 内存的静态分配和动态分配的区别【转】
来源: <http://blog.csdn.net/liuchao1986105/article/details/6724392> 内存的静态分配和动态分配的区别主要是两个: 一是时间不同 ...
- 内存的静态分配和动态分配的区别
内存的静态分配和动态分配的区别主要是两个: 一是时间不同.静态分配发生在程序编译和连接的时候.动态分配则发生在程序调入和执行的时候. 二是空间不同.堆都是动态分配的,没有静态分配的堆.栈有2种分配方式 ...
- C语言学习笔记——(三)静态开辟内存和动态开辟内存
注:编码工具是CLion+Cygwin64 目录 补充知识:C语言的布尔类型--非零即true. 静态开辟内存 静态开辟内存上限测试: 静态开辟内存特点: 静态开辟内存自动开辟和自动释放测试: 动态开 ...
- C语言定义了一个结构体怎么分配内存?C\C++中结构体变量与结构体指针内存分配问题?
C语言定义了一个结构体怎么分配内存?C\C++中结构体变量与结构体指针内存分配问题? 问题1:结构体指针最开始怎么分配内存?用sizeof()是不能确定大小的. 问题2:给结构体变量分配之后,是否还要 ...
- c语言动态与静态分配内存空间的区别
所谓动态内存分配就是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法.动态内存分配不象数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据程序的需要即时分配,且分配的大小就是程 ...
- linux驱动静态分配内存,Linux驱动设计——内存与IO访问
名词解释 内存空间与IO空间 内存空间是计算机系统里面非系统内存区域的地址空间,现在的通用X86体系提供32位地址,寻址4G字节的内存空间,但一般的计算机只安装256M字节或者更少的内存,剩下的高位内 ...
- Go语言实例化结构体——为结构体分配内存并初始化
转自: http://c.biancheng.net/view/66.html 结构体的定义只是一种内存布局的描述,只有当结构体实例化时,才会真正地分配内存.因此必须在定义结构体并实例化后才能使用结构 ...
最新文章
- cin、cout的重载
- 解决Android图库不识别.nomedia的问题
- hadoop 基础环境搭建(一)
- 软件工程第二次结对作业
- 计算机视觉与深度学习 | 开源SLAM、视觉里程计综述(SLAM、Visual Odometry)
- android资源的热更新(替换 AssetManager+LoadedApk中的资源路径)
- 数据库经典DB2在技术前沿展现王者风范
- 雷观(六):码农值千金
- html:(6):body标签和p标签
- 《DIY四轴飞行器》读书笔记1
- 在线预览文档简单例子
- Toontrack EZbass for mac - 虚拟低音音频插件
- Hadoop安装教程_单机/伪分布式配置_Hadoop 2.7.7(2.7.7)/CentOS Linux release 7.4.1708
- MPChart的柱状图BarChart
- vue+elementUI 表格下载为excel
- 初始化k8s时,报错[kubelet-check] It seems like the kubelet isn‘t running or healthy.
- ccsa安学网小程序_CCSA安学网题库1
- Redis Zset的实现为什么用跳表,而不用平衡树?
- linux 中read命令后面-p是什么意思呢
- 本地项目如何被外网访问(外网穿透工具一——natapp)