(1) ๋์ ํ ๋น ๋ฉ๋ชจ๋ฆฌ๋?
• ํ๋ก๊ทธ๋จ์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น๋ฐ๋ ๋ฐฉ๋ฒ์๋ ์ ์ (static)๊ณผ ๋์ (dynamic)์ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค.
• ์ ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น: ํ๋ก๊ทธ๋จ์ด ์์๋๊ธฐ ์ ์ ๋ฏธ๋ฆฌ ์ ํด์ง ํฌ๊ธฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น ๋ฐ๋ ๊ฒ์ด๋ค.
• ์ด ๊ฒฝ์ฐ, ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๋ ํ๋ก๊ทธ๋จ์ด ์์๋๊ธฐ ์ ์ ๊ฒฐ์ ๋๋ฉฐ ํ๋ก๊ทธ๋จ ์คํ ๋์ค์ ๊ทธ ํฌ๊ธฐ๊ฐ ๋ณ๊ฒฝ๋ ์๋ ์๋ค.
• ์๋ฅผ ๋ค๋ฉด ์๋์ ๊ฐ์ด ๋ฐฐ์ด์ ์ ์ธํ๋ฉด ์ ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น๋ฐ๋ ๊ฒ์ด๋ค.
int sarray[10];
• ์ ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ฅ์ : ๊ฐํธํ๋ค.
• ์ ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ๋จ์ : ๊ฒฝ์ฐ์ ๋ฐ๋ผ ๋นํจ์จ์ ์ผ ์ ์๋ค.
• ์๋ฅผ ๋ค๋ฉด, ํ๋ก๊ทธ๋จ์ด ์ฒ๋ฆฌํด์ผ ํ๋ ์ ๋ ฅ์ ํฌ๊ธฐ๋ฅผ ๋ฏธ๋ฆฌ ์ ์ ์๋ ๊ฒฝ์ฐ: ๋ง์ฝ ์ฒ์์ ๊ฒฐ์ ๋ ํฌ๊ธฐ๋ณด๋ค ๋ ๋ง์ ์ ๋ ฅ์ด ๋ค์ด์จ๋ค๋ฉด ์ฒ๋ฆฌํ์ง ๋ชปํ ๊ฒ์ด๊ณ , ๋ ์ ์ ์์ ์ ๋ ฅ์ด ๋ค์ด์จ๋ค๋ฉด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋ญ๋น๋ ๊ฒ์ด๋ค.
• ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น(dynamic memory allocation): ๋ค์๊ณผ ๊ฐ์ด ํ๋ก๊ทธ๋จ์ด ์คํ ๋์ค์ ๋์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น๋ฐ๋ ๊ฒ
int *darray = malloc(10 * sizeof(int));
• ์์ ๋ฌธ์ฅ์์๋ 10๊ฐ์ ์ ์๋ฅผ ์ ์ฅํ ์ ์๋ ๊ณต๊ฐ์ ๋์ ์ผ๋ก ํ ๋น๋ฐ๊ณ ์๋ค.
• ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์์๋ ํ์ํ ๋งํผ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์์คํ ์ผ๋ก๋ถํฐ ํ ๋น๋ฐ์์ ์ฌ์ฉํ๊ณ , ์ฌ์ฉ์ด ๋๋๋ฉด ์์คํ ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ฐ๋ฉํ๋ค. ํ์ํ ๋งํผ๋ง ํ ๋น๋ฐ๊ณ , ๋ ํ์ํ ๋์ ์ฌ์ฉํ๊ณ ๋ฐ๋ฉํ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋งค์ฐ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.
• ๋์ ๋ฉ๋ชจ๋ฆฌ๋ malloc() ๊ณ์ด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํ ๋น๋ฐ์ ์ ์๋ค. ํ๋ก๊ทธ๋จ์ด ์ํ๋๋ค๊ฐ malloc() ํจ์๋ฅผ ๋ง๋๋ฉด ์ด์ ์ฒด์ ๊ฐ ํธ์ถ๋์ด์ ํ์ํ ๋งํผ์ ๋์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๊ฒ ๋๋ค.
'1ํ๋ (2023) > C ์ธ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C] Study: ๋์ ๋ฉ๋ชจ๋ฆฌ - (3) ๊ตฌ์กฐ์ฒด์ ๋์ ์์ฑ์ ํด๋ณด์ (0) | 2023.08.19 |
---|---|
[C] Study: ๋์ ๋ฉ๋ชจ๋ฆฌ - (2) malloc()๊ณผ free() (0) | 2023.08.19 |
[C] Study: ๋ณ์์ ์๋ฃํ - (5) ๋ฌธ์ํ (0) | 2023.08.18 |
[C] Study: ๋ณ์์ ์๋ฃํ - (4) ๋ถ๋์์์ ํ (0) | 2023.08.17 |
[C] Study: ๋ณ์์ ์๋ฃํ - (3) ์ ์ํ (0) | 2023.08.12 |