2011-08-23

C++ 動態配置多維陣列

在C++中,配置與釋放一般陣列的語法如下:


//allocate memory block
int *test = new int[5];
//free memory
delete [] test;
test = NULL;

要動態配置多維陣列,就必須先由第一維開始配置存放下一維指標陣列,
然後再各自往下配置,以此類推...        
刪除的方法類似,反向操作即可。

宣告一個 int test[3][4][5] 的陣列。
int ***test;
test = new int**[3];
//allocate memory block
for(int i=0; i<3; i++)
{
     test[i] = new int*[4];
     for(int j=0; j<4; j++)
     {
         test[i][j] = new int[5];
     }
} 

//free memory
for(int i=0; i<3; i++)
{
      for(int j=0; j<4; j++)
     {
         delete [] test[i][j];
         test[i][j] = NULL;
    }     
    delete [] test[i];
    test[i] = NULL;
}
delete [] test;
test = NULL;

沒有留言:

張貼留言