프로그래밍 언어/c++ study
c++ 동적배열과 이중포인터를 이용한 2차원 배열과 1차원배열을 이용한 2차원 배열!
65살까지 코딩
2021. 2. 18. 20:16
728x90
반응형
//기본값 설정
#include
using namespace std;
int main()
{
const int row = 3;
const int colum = 5;
int arr[row][colum] =
{
{1, 2, 3, 4, 5}
, {6 ,7, 8, 9 ,10}
, {11, 12, 13, 14, 15}
};
//1차원 배열을 2차원 배열처럼 사용하기
int *line = new int[row * colum];
for (int r = 0; r < row; r++)
{
for (int c = 0; c < colum; c++)
{
line[c + r * colum] = arr[r][c];
}
}
for (int i = 0; i < row; i++)
{
for (int j = 0; j < colum; j++)
{
cout << line[j + i*colum];
}
cout << endl;
}
//for문을 통한 방법
int **matrix = new int *[row];
for (int r = 0; r < row; r++)
{
matrix[r] = new int[colum];
}
for (int r = 0; r < row; r++)
{
for (int c = 0; c < colum; c++)
{
matrix[r][c] = arr[r][c];
}
}
for (int i = 0; i < row; i++)
{
for (int j = 0; j < colum; j++)
{
cout << matrix[i][j];
}
cout << endl;
}
for (int r = 0; r < row; r++)
{
delete[] matrix[r];
}
delete[] matrix;
//원초적인 방법
int *row1 = new int[colum] {1, 2, 3, 4, 5};
int *row2 = new int[colum] {6, 7, 8, 9, 10};
int *row3 = new int[colum] {11, 12, 13, 14, 15};
int **rows = new int *[row] {row1, row2, row3};
for (int i = 0; i < row; i++)
{
for (int j = 0; j < colum; j++)
{
cout << rows[i][j];
}
cout << endl;
delete[] row1;
delete[] row2;
delete[] row3;
delete[] rows;
}
return 0;
}
728x90
반응형