二维数组的动态内存分配和释放

类别:VC语言 点击:0 评论:0 推荐:

//动态分配二维数组空间
{
  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;     //释放行地址空间
}

本文地址:http://com.8s8s.com/it/it3040.htm