巨大な配列を使いたいとします。ではやってみましょう。すなおにこんなプログラムを書いてみます。
int main(){
  int a[256][256][256];
  return 0;
}
			
			さてどうなりますでしょうか?
			
			
			WINDOWS2000では

			ということになります。こまります。
			
			プログラムの中で使える変数には数の制約があります。
			それゆえ、このような場合はメモリーを確保するという操作を明示的に行う必要があります。
			
256*256*256個のintが入るだけのメモリーを確保するには
new int[256*256*256];
とやります。 この確保したメモリーを使うにはポインタを利用します。
int *a; a=new int[256*256*256];
とやります。すなわちnewはこの確保したメモリーの先頭のアドレスを返しているのです。 さてこうすれば、*(a+30)というように使うことができます。ポインタですから、
a[50*256*256+50*256+50];ともやれて、こちらのほうが配列のように使えるので便利です。
int*** a=new int**[256];
for(int i=0;i<256;i++){
  a[i]=new int* [256];
  for(int j=0;j<256;j++){
    a[i][j]=new int[256];
  }
}
			
			とやればOk.です。a[0][0][0]からa[255][255][255]までつかえます。
			
		
		使い終わったらメモリーを手放すことができます。
		
delete a;