C++のnew演算子とポインタについてのプログラムなんですが・・・
Posted: 2012年4月26日(木) 01:18
C++のnew演算子とポインタについてのプログラムで
3次元配列の動的確保を行うプログラムを作成したんですが、
イマイチ内容がピンときません。プログラムの一部は以下のように
なってるんですが。
int ***p;
int i,j;
p=new int**[2];[tab=30][tab=30]//まずなぜここで**p=・・・とならない?
[tab=30]for(i=0;i<2;i++){
[tab=30][tab=30]p=new int*[2];//上のように*p=・・・になぜならない?
[tab=30][tab=30]for(j=0;j<2;j++){
[tab=30][tab=30][tab=30]p[j]=new int[2];
[tab=30][tab=30]}
[tab=30]}
とネットで調べた3次元配列のプログラムなんですが、
なぜポインタのポインタのポインタで宣言したのに
動的確保を行っていくと普通の3次元配列になっているのか
どのサイトを見ても図で説明したりしてくれてるサイトが
ないのでポインタや配列の状態がイマイチピンときません。
どなたか詳しく教えてください。
3次元配列の動的確保を行うプログラムを作成したんですが、
イマイチ内容がピンときません。プログラムの一部は以下のように
なってるんですが。
int ***p;
int i,j;
p=new int**[2];[tab=30][tab=30]//まずなぜここで**p=・・・とならない?
[tab=30]for(i=0;i<2;i++){
[tab=30][tab=30]p=new int*[2];//上のように*p=・・・になぜならない?
[tab=30][tab=30]for(j=0;j<2;j++){
[tab=30][tab=30][tab=30]p[j]=new int[2];
[tab=30][tab=30]}
[tab=30]}
とネットで調べた3次元配列のプログラムなんですが、
なぜポインタのポインタのポインタで宣言したのに
動的確保を行っていくと普通の3次元配列になっているのか
どのサイトを見ても図で説明したりしてくれてるサイトが
ないのでポインタや配列の状態がイマイチピンときません。
どなたか詳しく教えてください。