c++动态创建二维数组的方法
2010-09-16 18:17
281 查看
c/c++中创建二维数组的方法
方法1:用一维数组代替二维数组
#include <iostream>
#include <memory.h>
#include <stdio.h>
using namespace std;
int main(void)
{
////////////////////////////
int n=2,m=3;
int *a=new int[n*m];
for(int i=0;i<n;i++)
{
cout<<endl;
for(int j=0;j<m;j++)
{
a[i*m+j]=i+j;
cout<<a[i*m+j]<<" "<<&a[i*m+j]<<" ";
}
}
cout<<endl;
delete []a;
}
运行结果:
0 00491BB0 1 00491BB4 2 00491BB8
1 00491BBC 2 00491BC0 3 00491BC4
2 00491BC8 3 00491BCC 4 00491BD0
各个元素的内存地址是递增的,是在堆区里分配的内存空间。
方法2:二维数组
#include <iostream>
#include <memory.h>
#include <stdio.h>
using namespace std;
int main(void)
{
////////////////////////////
int n=2,m=3;
int **a=new int*
;
for(int i=0;i<n;i++)
{
a[i]=new int[m];
}
for(int i=0;i<n;i++)
{
cout<<endl;
for(int j=0;j<m;j++)
{
a[i][j]=i+j;
cout<<a[i][j]<<" "<<&a[i][j]<<" ";
}
}
cout<<endl;
delete []a;
getchar();
}
其实大家更关心二维数组在内存中是如何分配空间的:
输出结果:
00491B40 00491B44 00491B48
004918D0 004918D4 004918D8
00491890 00491894 00491898
每一行的相邻元素地址是递增的,连续的,不同行之间的地址就不连续了。
方法1:用一维数组代替二维数组
#include <iostream>
#include <memory.h>
#include <stdio.h>
using namespace std;
int main(void)
{
////////////////////////////
int n=2,m=3;
int *a=new int[n*m];
for(int i=0;i<n;i++)
{
cout<<endl;
for(int j=0;j<m;j++)
{
a[i*m+j]=i+j;
cout<<a[i*m+j]<<" "<<&a[i*m+j]<<" ";
}
}
cout<<endl;
delete []a;
}
运行结果:
0 00491BB0 1 00491BB4 2 00491BB8
1 00491BBC 2 00491BC0 3 00491BC4
2 00491BC8 3 00491BCC 4 00491BD0
各个元素的内存地址是递增的,是在堆区里分配的内存空间。
方法2:二维数组
#include <iostream>
#include <memory.h>
#include <stdio.h>
using namespace std;
int main(void)
{
////////////////////////////
int n=2,m=3;
int **a=new int*
;
for(int i=0;i<n;i++)
{
a[i]=new int[m];
}
for(int i=0;i<n;i++)
{
cout<<endl;
for(int j=0;j<m;j++)
{
a[i][j]=i+j;
cout<<a[i][j]<<" "<<&a[i][j]<<" ";
}
}
cout<<endl;
delete []a;
getchar();
}
其实大家更关心二维数组在内存中是如何分配空间的:
输出结果:
00491B40 00491B44 00491B48
004918D0 004918D4 004918D8
00491890 00491894 00491898
每一行的相邻元素地址是递增的,连续的,不同行之间的地址就不连续了。
相关文章推荐
- c++用动态创建二维数组的几种方法
- C++用new创建二维数组的方法
- c++ 中创建动态二维数组
- 【转】C++动态创建二维数组,二维数组指针
- c/c++ 动态创建与释放二维数组
- C++ 创建动态二维数组
- C++中动态定义一维数组,二维数组,三维数组的方法
- C++动态创建二维数组
- C++中动态申请二维数组并释放方法
- C++中二维数组的动态创建与处理
- C++中动态申请二维数组并释放方法
- C++中二维数组的动态创建于处理(zzl
- 每天一个c++小程序(2):二维数组动态创建
- c++动态创建二维数组
- c++ 创建动态二维数组
- C++中动态申请二维数组并释放方法
- C++中动态申请二维数组并释放方法
- C++\V动态创建和释放二维数组
- C++ 动态开辟二维数组的的方法
- C++创建动态空间的未知大小的二维数组、三维数组、多维数组