C++中动态分配二维数组的方法

王朝c/c++·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

#include

#define N 4

typedef int p[N];//方法一用到

using namespace std;

int main()

{

int n = 0;

//方法一:使用typedef定义一个具有N个元素的数组类型

p *ptr1; //定义二维数组??用法与二维数组相同

ptr1 = new p[N];

for(int i = 0; i < N; i++)

for(int j = 0; j < N; j++)

ptr1[i][j] = ++n;

cout << "方法一:" << endl;

for(i = 0; i < N; i++)

{

for(int j=0;j

< N; j++)

cout << ptr1[i][j] << " ";

cout << endl;

}

delete[] ptr1;

cout << endl;

// 方法二:使用数组指针

int row = N; //二维数组的行数?

int column = N; //二维数组的列数

//分配一个指针数组,其首地址保存在pMatrix中

int **pMatrix = new int*[row];

//为指针数组的每个元素分配一个数组

for (int i = 0; i < row; i++)

pMatrix[i] = new int[column];

//以上是分配,以下是释放

for (int i = 0; i < row; i++)

delete [column] pMatrix[i];

delete [row] pMatrix;

//这些技术可用于构造一个矩阵类

return 0;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航