2์ฐจ์ ๋ฐฐ์ด
C์ธ์ด์์ 2์ฐจ์ ๋ฐฐ์ด์ ๋ค๋ฃจ๋ ๊ฒ์ ํ๋ก๊ทธ๋๋ฐ์ ๊ธฐ๋ณธ์ด๋ฉด์๋, ๋ค์ํ ์์ฉ ๋ถ์ผ์์ ํ์์ ์ผ๋ก ์ฌ์ฉ๋๋ ์ค์ํ ๊ฐ๋ ์ด๋ค. ์ด ๊ธ์์๋ 2์ฐจ์ ๋ฐฐ์ด์ ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ๋ฒ, ๋ช ๊ฐ์ง ํ๊ณผ ์ฝ๋ ์์๋ฅผ ํตํด ์ดํด๋ฅผ ๋๋๋ค.
โญ 1. 2์ฐจ์ ๋ฐฐ์ด ๊ตฌ์กฐ
2์ฐจ์ ๋ฐฐ์ด์ ๋ฐ์ดํฐ๋ฅผ ํ๋ ฌ์ ํํ๋ก ์ ์ฅํ ๋ ์ฌ์ฉ๋๋ฉฐ, ํ์ ๋ฐฐ์ด์ด๋ฆ[ํ์ ๊ฐ์][์ด์ ๊ฐ์];์ ํํ๋ก ์ ์ธํ๋ค. ์๋ฅผ ๋ค์ด, 3ํ 4์ด์ ์ ์ํ 2์ฐจ์ ๋ฐฐ์ด์ ๋ค์๊ณผ ๊ฐ์ด ์ ์ธํ๋ค.
int matrix[3][4];
โญ 2. ์ด๊ธฐํ
2์ฐจ์ ๋ฐฐ์ด์ ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํํ ์ ์๋ค. ๋ฐฐ์ด์ ์ด๊ธฐํํ ๋๋ ์ค๊ดํธ {}๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ํ์ ์์๋ฅผ ๋์ดํ๋ค.
int matrix[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
โญ 3. ๋ฐฐ์ด์ ์ ๊ทผ
2์ฐจ์ ๋ฐฐ์ด์ ๊ฐ ์์์ ์ ๊ทผํ๋ ค๋ฉด ๋ ๊ฐ์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ค. ์ฒซ ๋ฒ์งธ ์ธ๋ฑ์ค๋ ํ์, ๋ ๋ฒ์งธ ์ธ๋ฑ์ค๋ ์ด์ ๊ฐ๋ฆฌํจ๋ค. ๋ค์์ 2์ฐจ์ ๋ฐฐ์ด์ ๋ชจ๋ ๊ฐ์ ์ถ๋ ฅํ๋ ์์ ์ด๋ค.
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 4; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
โญ 4. ๋์ ํ ๋น
๊ณ ์ ๋ ํฌ๊ธฐ์ ๋ฐฐ์ด ๋์ , ํ๋ก๊ทธ๋จ ์คํ ์ค์ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ด๋ด ๋๋ malloc ๋๋ calloc ํจ์๋ฅผ ์ฌ์ฉํ์ฌ 2์ฐจ์ ๋ฐฐ์ด์ ๋์ ์ผ๋ก ํ ๋นํ ์ ์๋ค. ex) ํ๋ ฌ ๊ณ์ฐ
int **matrix = (int **)malloc(3 * sizeof(int *));
for(int i = 0; i < 3; i++) {
matrix[i] = (int *)malloc(4 * sizeof(int));
}
โญ 5. ๋ฐฐ์ด์ ํฌ์ธํฐ
2์ฐจ์ ๋ฐฐ์ด์ ํจ์์ ์ธ์๋ก ์ ๋ฌํ ๋๋, ๋ฐฐ์ด์ ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํจ์จ์ ์ด๋ค. ์ด๋ฅผ ํตํด ํฐ ๋ฐ์ดํฐ์ ๋ณต์ฌ ์์ด ๋ฐฐ์ด์ ์ ๊ทผํ ์ ์๋ค.
#include <stdio.h>
#include <stdlib.h>
void printMatrix(int* matrix[4], int rows) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}
int main() {
int* matrix[4];
for (int i = 0; i < 4; i++) {
matrix[i] = (int*)malloc(4 * sizeof(int)); // ๊ฐ ํ์ ๋์ ์ผ๋ก ํ ๋น
for (int j = 0; j < 4; j++) {
matrix[i][j] = i * 4 + j; // ์์ ๋ฐ์ดํฐ
}
}
printMatrix(matrix, 4);
// ํ ๋น ํด์
for (int i = 0; i < 4; i++) {
free(matrix[i]);
}
return 0;
}
2์ฐจ์ ๋ฐฐ์ด์ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์กฐํํ๊ณ , ๋ค๋ฃจ๋ ๋ฐ ์์ด ๋งค์ฐ ์ ์ฉํ๋ค. C์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ 2์ฐจ์ ๋ฐฐ์ด์ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ๋ ค๋ฉด, ๋ฐฐ์ด์ ์ ์ธ๊ณผ ์ด๊ธฐํ, ๋ฉ๋ชจ๋ฆฌ ํ ๋น, ๊ทธ๋ฆฌ๊ณ ํจ์์์ ์ํธ์์ฉ ๋ฐฉ๋ฒ์ ์ ํํ ์ดํดํ๋ ๊ฒ์ด ์ค์ํ๋ค.
'๐ท C์ธ์ด 30๊ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C/C++ Tip] 27. C์ธ์ด ๋ฐ์ดํฐ ํ์ ๋ฒ์ (0) | 2024.11.11 |
---|---|
[C/C++ Tip] 26. Char, String ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ (1) | 2024.11.10 |
[C/C++ Tip] 24. C์ธ์ด ํ์ผ ์ ์ถ๋ ฅ (1) | 2024.11.09 |
[C/C++ Tip] 23. ์ง์ญ ๋ณ์, ์ ์ญ ๋ณ์, ์ ์ ๋ณ์ (0) | 2024.11.09 |
[C/C++ Tip] 22. C์ธ์ด ๋ฐ๋ณต๋ฌธ : While๋ฌธ (0) | 2024.11.09 |