[Jumping into C++] 3차원 포인터 배열 동적할당 곱셈표
#include <iostream>
using namespace std;
int main()
{
int ***table;
int x, y, z;
cin >> x >> y >> z;
//3차원 동적 메모리 할당
table = new int**[x];
for(int j = 0 ; j < y ; j++)
{
table[j] = new int*[y];
for(int k = 0 ; k < z ; k++)
{
table[j][k] = new int[z];
}
}
for(int i = 0 ; i < x ; i++)
{
for(int j = 0 ; j < y ; j++)
{
for(int k = 0 ; k < z ; k++)
{
table[i][j][k] = i * j * k;
}
}
}
for(int i = 0 ; i < x ; i++)
{
for(int j = 0 ; j < y ; j++)
{
for(int k = 0 ; k < z ; k++)
{
cout <<table[i][j][k] << " " ;
}
cout << '\n';
}
cout << '\n';
}
for(int i = 0 ; i < z ; i++)
{
for(int j = 0 ; j < y ;j++)
{
delete[] table[i][j];
}
}
delete[] table[x];
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int ***table;
int x, y, z;
cin >> x >> y >> z;
//3차원 동적 메모리 할당
table = new int**[x];
for(int j = 0 ; j < y ; j++)
{
table[j] = new int*[y];
for(int k = 0 ; k < z ; k++)
{
table[j][k] = new int[z];
}
}
for(int i = 0 ; i < x ; i++)
{
for(int j = 0 ; j < y ; j++)
{
for(int k = 0 ; k < z ; k++)
{
table[i][j][k] = i * j * k;
}
}
}
for(int i = 0 ; i < x ; i++)
{
for(int j = 0 ; j < y ; j++)
{
for(int k = 0 ; k < z ; k++)
{
cout <<table[i][j][k] << " " ;
}
cout << '\n';
}
cout << '\n';
}
for(int i = 0 ; i < y ; i++)
{
for(int j = 0 ; j < z ;j++)
{
delete[] table[i][j];
}
}
for (int i = 0 ; i < x ; i++)
{
delete[] table[x];
}
delete[] table;
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int ***table;
int x, y, z;
cin >> x >> y >> z;
//3차원 동적 메모리 할당
table = new int**[x];
for(int j = 0 ; j < y ; j++)
{
table[j] = new int*[y];
for(int k = 0 ; k < z ; k++)
{
table[j][k] = new int[z];
}
}
for(int i = 0 ; i < x ; i++)
{
for(int j = 0 ; j < y ; j++)
{
for(int k = 0 ; k < z ; k++)
{
table[i][j][k] = (i*x*y)+(y*j)+k;
}
}
}
for(int i = 0 ; i < x ; i++)
{
for(int j = 0 ; j < y ; j++)
{
for(int k = 0 ; k < z ; k++)
{
cout <<table[i][j][k] << " " ;
}
cout << '\n';
}
cout << '\n';
}
for(int i = 0 ; i < y ; i++)
{
for(int j = 0 ; j < z ;j++)
{
delete[] table[i][j];
}
}
for (int i = 0 ; i < x ; i++)
{
delete[] table[x];
}
delete[] table;
return 0;
}