乱数の動的 3D 配列を生成し、それをメモリ ブロックに割り当てるコード セグメントがあります。私はそれが正しいと思いますが、すべてが連続したメモリブロックにあるかどうかをテストするにはどうすればよいですか? 方法はありますか?各要素のアドレスを画面に出力する cout 関数があり、正しいように見えますが、確信が持てません。メモリも再度解放する必要があることはわかっていますが、それは後で行います。
#include <cstdlib>
#include <cstdio>
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
int ***dyn_array;
int **buffer_1;
int i;
int j;
int k;
int *buffer=new int[5*3*2];//Create a buffer for a block of memory
dyn_array = new int**[5];
buffer_1 = new int *[3];
srand(time(NULL));
cout<<"The address of the buffer is: "<<buffer<<endl;
for(i=0;i<5;i++)
{
dyn_array[i] = &buffer_1[i*3];
for(j=0;j<3;j++)
{
dyn_array[i][j] = &buffer[j*2];
}
}
for(i=0; i<5; i++)
{
for(j=0; j<3; j++)
{
for(k=0; k<2; k++)
{
dyn_array[i][j][k]=rand()%40;
cout<<"dyn array ["<<i<<"]["<<j<<"]["<<k<<"] is: "<<dyn_array[i][j][k]<<endl;
cout<<"Memory Address is: "<<&dyn_array[i][j][k]<<endl;
}
}
}
return 0;
}