C++中動態(tài)分配二維數(shù)組的方法
?
#include
#define ?N?4
typedef? int ?p[N]; // 方法一用到
using ? namespace ?std;
int ?main()
{
???? int ?n? = ? 0 ;
???? // 方法一:使用typedef定義一個具有N個元素的數(shù)組類型
????p? * ptr1;?????? // 定義二維數(shù)組??用法與二維數(shù)組相同
????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;
???? // ?方法二:使用數(shù)組指針
???? int ?row? = ?N;????? // 二維數(shù)組的行數(shù)?
???? int ?column? = ?N;?? // 二維數(shù)組的列數(shù)
?????
???? // 分配一個指針數(shù)組,其首地址保存在pMatrix中
???? int ? ** pMatrix? = ? new ? int * [row];
???? // 為指針數(shù)組的每個元素分配一個數(shù)組
???? 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 ;
}
from: http://www.zahui.com/html/9/20062.htm
#define ?N?4
typedef? int ?p[N]; // 方法一用到
using ? namespace ?std;
int ?main()
{
???? int ?n? = ? 0 ;
???? // 方法一:使用typedef定義一個具有N個元素的數(shù)組類型
????p? * ptr1;?????? // 定義二維數(shù)組??用法與二維數(shù)組相同
????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;
???? // ?方法二:使用數(shù)組指針
???? int ?row? = ?N;????? // 二維數(shù)組的行數(shù)?
???? int ?column? = ?N;?? // 二維數(shù)組的列數(shù)
?????
???? // 分配一個指針數(shù)組,其首地址保存在pMatrix中
???? int ? ** pMatrix? = ? new ? int * [row];
???? // 為指針數(shù)組的每個元素分配一個數(shù)組
???? 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 ;
}
posted on 2006-05-16 21:39 weidagang2046 閱讀(857) 評論(0) 編輯 收藏 所屬分類: C/C++