二维数组的生成-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(运行结果不再展示)

posted @ 2020-02-20 20:58  SavenNeer  阅读(469)  评论(1编辑  收藏  举报