weidagang2046的专栏

物格而后知致
随笔 - 8, 文章 - 409, 评论 - 101, 引用 - 0
数据加载中……

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

 

#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 ;
}
from: http://www.zahui.com/html/9/20062.htm

posted on 2006-05-16 21:39 weidagang2046 阅读(848) 评论(0)  编辑  收藏 所属分类: C/C++


只有注册用户登录后才能发表评论。


网站导航: