二維陣列的動態記憶體分配和釋放 (轉)

worldblog發表於2007-12-10
二維陣列的動態記憶體分配和釋放 (轉)[@more@]

//動態分配二維陣列空間
{
 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_ppTable[i]= new int[m_iWidth];

  //動態分配m_iWidth個型別為int的記憶體空間 
  //分配的是某行的數值空間
}
//由此分配的二維陣列空間並非是連續的
//可以使用m_ppTable[row][col]來給該二維陣列賦值
//其中 0<=row

//釋放所分配的記憶體空間
{
 for(int i=0;i delete[m_iWidth]m_ppTable[i]; //以行為單位釋放數值空間
 delete [m_iHight]m_ppTable; //釋放行地址空間
}


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990801/,如需轉載,請註明出處,否則將追究法律責任。

相關文章