本文主要是介绍二维数组的动态分配,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
C语言
malloc函数
一维数组
int* buf = ( int * )malloc( 10*sizeof( int ));
二维数组
// 定义二维数组的行数和列数
int row = 3;
int col = 4;// 动态分配一个能存放row个指针的数组,这些指针将分别指向每行的首地址
int** buf = (int**)malloc(row * sizeof(int*));// 遍历行
for (int i = 0; i < row; i++)
{// 为当前行分配col个整数大小的内存空间// 每次循环都为一行分配内存,使得buf[i]指向这一行数据的起始位置buf[i] = (int*)malloc(col * sizeof(int));
}
C++语言
new
一维数组
// 动态分配一个长度为10的整型数组
int* buf = new int[10];
// 动态分配一个单独的整数值,并将其初始化为10
// 注意:这将分配一个整数,而非数组
int* singleBuf = new int(10);
二维数组
// 动态分配一个指针数组,该数组将存放3个指向int类型的指针。
// 每个指针后续将指向一个包含4个int元素的数组,从而构成一个3x4的二维数组。
int** buf = new int* [3];// 遍历从0到2(共3次),为数组的每一行分配内存。
// 对于数组的每一行,new操作分配一个大小为4的int型数组。
// buf[i]存储新分配的内存地址,这样buf就形成了一个二维数组的结构。
for (int i = 0; i < 3; i++) {buf[i] = new int[4];// 注意:这里没有直接对buf[i][j]进行初始化,// 如果需要初始化每个元素,可以在内部添加另一个循环来实现。
}
这篇关于二维数组的动态分配的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!