二维数组的生成-new的使用
相关的思路来自于下面这个博客:https://blog.csdn.net/samuelcoulee/article/details/8674388
我们对于其中的一个方案进行了实现与测试——借助new和指针生成二维数组。
1 int** set_Two_dimensional_array(int first_dimention,int second_dimention) 2 { 3 int** pointers = new int*[first_dimention]; 4 //如果是new (int*)[first_dimention]则是错误的 5 for(int i=0;i<first_dimention;i++) 6 { 7 int* one_pointer = new int[second_dimention]; 8 pointers[i] = one_pointer; 9 //创建的每一个一维数组的头地址添加进入指针组里 10 } 11 return pointers; 12 //上述的二维数组的各个维度之间并不是在内存中顺序排列的 13 }
下面是具体的应用:
#include<cstring> #include<cstdio> #include<iostream> using namespace std; int** set_Two_dimensional_array(int first_dimention,int second_dimention); //省略具体函数 int main() { int** aim=set_Two_dimensional_array(30,30); //这里的二维数组头指针必须是双重指针,之后的应用与平时使用时的格式相差无几 for(int i=0;i<30;i++) for(int k=0;k<30;k++) { aim[i][k]=i*30+k; } for(int i=0;i<30;i++) { for(int k=0;k<30;k++) { printf("%d ",aim[i][k]); } printf("\n"); } return 0; }
OK(运行结果不再展示)