1.一维数组
对于一维的数组,C++规定了一种简单的动态开辟数组空间的方法。
int n;
cin>>n;
int arr[n];
这种方法其实就是用变量来充当数组的下标。使用时需要注意一下变量必须是非负整数。
2.二维数组(高维同理)
二维数组也能使用上述方法动态开辟空间。但是在实际使用时,二维数组常常作为函数的参数。此时必须要设定第一维的大小。这大大降低了函数的泛用性。
因此,有没有什么方法能够在传参时也不用规定第一维大小呢?
那就是:动态内存分配!
代码如下:
//创建一个二维指针变量
int **array;
//开辟这个二维数组的第一维,第一维的每个变量是一个一维指针
array = (int **)malloc(m *sizeof(int *));
//开辟二维数组的第二维,第二维的每个变量就是int型数了
for(i=0;i<M;i++)
array[i] = (int *)malloc(n *sizeof(int));