c语言中的数组空间动态开辟在c语言中,必不可少的需要使用到数组,通常为了动态的开辟数组空间,可以使用malloc函数,在c++中可以使用new关键字进行空间的动态开辟与回收,动态开辟空间的方法更加灵活,更能有效的根据需要开辟空间使用。
1、一维数组一维数组最简单,直接使用malloc函数就可以开辟,以int型数据为例,开辟一个连续空间使用。
#include#includevoid test(int *arr){ for(int i=0;i<5;i++){ printf(%d ,arr[i]); }}int main(){ int nums=5; int *array=(int *)malloc(sizeof(int)*nums); for(int i=0;i<5;i++){ array[i]=i; } test(array); return 0;}在这个例子中最后的结果输出为0 1 2 3 4;c语言中,数组变量可以看作一个指针,通过malloc将开辟空间的返回值返回给数组指针,从而可以通过随机访问修改和查询数组中的值。
2、二维数组二维数组可以看作一维数组的延申,在上一个例子一维数组中,每一个一维数据是一个int型变量,而二维数组中,将上一个例子中每一个一维变量变为一个 int * 变量,也就是一个指针,指向另一个开辟的动态一位空间,可以理解为一维数组的一维数组(套娃)。
#include#includeusing namespace std;void demotest(int **mat){ for(int i=0;i<4;i++){ for(int j=0;j<4;j++){ cout<
3、三维数组类比二维数组的例子,三维数组就可以看作二维数组的延申,三维数组在实际应用中通常可以用于存储rgb图片,理解二维数组之后,三维数组就较为简单了,代码例子如下。
#include#includeint main(){ int channels=3; int columns=4; int rows=4; int ***matrix=(int ***)malloc(sizeof(int **)*channels); for(int i=0;i总结在一些特定的程序中,我们常常无法预测数组的大小。如果我们自己将值分配给数组,那么它在执行期间无法更改。这会产生问题,要么数组的内存变低,要么数组占用更少的空间浪费内存,因此为避免这种情况,建议动态分配数组。
造车烧钱,贾跃亭穷到卖地? 900英亩报价4000万美元
如何为便携式设备设计高效的DC/DC转换器
LED照明安全标准提高迫在眉睫
中国联通和中国电信宣布合作共建一张5G接入网络
【紫光同创国产FPGA教程】【第十三章】字符显示实验
C语言中的数组空间动态开辟
数据如何助力人工智能的到来
不止手机 如今的骁龙还在驱动什么“大趋势”?
SQL+Excel怎么进行数据统计
AI寻求下一个增长点,落实机器的三维世界
防止量子计算机被攻击,我们该做些什么
远翔-LED驱动芯片-FP7208XR-G1
人工智能会让人力资本更值钱
计算机通信与网络v2 实验课程(18)
Arduino IoT Cloud开始与ChatGPT联机运作
Ampere Altra系列处理器的锁和内存序
车视野3D 360全景GQ2330解码一体机进行实测
2021蓝莓大赏落幕,YESOUL野小兽荣获“最佳线上直播课”奖
光伏赛道热度高涨 机器人能否在光伏打出一个产业赢局?
SPARC:用于先进逻辑和 DRAM 的全新沉积技术