프로그래밍 공부/Jumping into C++

[Jumping into C++] 3차원 포인터 배열 동적할당 곱셈표

Rocketbabydolls 2020. 11. 16. 20:55


#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;
}