是什么:
是数组的数组,指针的集合;
int* array=new int[50];//开辟50个int大小空间首地址传给array;
int** a2d=new int*[50];//开辟了50个int大小的指针空间地址传给a2d;
遍历设计每个指针指向一个存有50个int类型变量的数组
代码示例:
#include<iostream>
int main()
{
int** a2d = new int* [50];
for (int i = 0; i < 50; i++)
{
a2d[i] = new int[50];
}
for (int i = 0; i < 50; i++)//堆上建立的 用完要删
{
delete[] a2d[i];
}
delete[] a2d;
}
多维数组会导致内存分散的问题,造成cache miss会降低运行效率
抽象二维数组
代码示例
#include<iostream>
int main()
{
int *arry=new int[5*5];
for(int x=0;x<5;x++)
{
for(int y=0;y<5;y++)
{
arry[x+y*5]=2;
std::cout<< arry[x+y*5]<<std::endl;
}
}
}
标签:int,50,a2d,数组,多维,new
From: https://www.cnblogs.com/WZline/p/18302621