//动态分配二维数组空间 { m_iHight=10;//二维数组的高度 m_iWidth=10;//二维数组的宽度 //动态分配一个二维数组m_ppTable内存空间 //其类型为int //m_ppTable指向该数组 int **m_ppTable; m_ppTable=new int *[m_iHight];
//动态分配m_iHight个类型为int *的内存空间 //分配的是行地址空间 for(int i=0;i<m_iHight;i++) m_ppTable[i]= new int[m_iWidth];
//动态分配m_iWidth个类型为int的内存空间 //分配的是某行的数值空间 } //由此分配的二维数组空间并非是连续的 //可以使用m_ppTable[row][col]来给该二维数组赋值 //其中 0<=row<m_iHight;0<=col<m_iWidth;
//释放所分配的内存空间 { for(int i=0;i<m_iHight;i++) delete[m_iWidth]m_ppTable[i]; //以行为单位释放数值空间 delete [m_iHight]m_ppTable; //释放行地址空间 } 
|