[2020-02-04] 01. ์ํํธ์จ์ด ๋ฒ ์ด์ง - 15
15. 15_Chapter 01. C ์ธ์ด - 14. ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น
๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ๊ฐ๋
- ์ผ๋ฐ์ ์ผ๋ก C์ธ์ด์์ ๋ฐฐ์ด์ ๊ฒฝ์ฐ ์ฌ์ ์ ์ ์ ํ ํฌ๊ธฐ๋งํผ ํ ๋นํด์ฃผ์ด์ผ ํจ
- ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๋งํผ๋ง ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํด์ ์ฌ์ฉํ๊ณ ์ ํ๋ค๋ฉด ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ฌ์ฉ
- ๋์ ์ด๋ผ๋ ๋ง์ ์๋ฏธ๋ 'ํ๋ก๊ทธ๋จ ์คํ ๋์ค์' ๋ผ๋ ์๋ฏธ
(์ผ๋ฐ์ ์ผ๋ก ํ๋ก๊ทธ๋๋ฐ์์ ๋์ ์ด๋ผ๋ ๋ง์ ํ๋ก๊ทธ๋จ ์คํ์ค์ ๋ฌด์์ธ๊ฐ ์งํ๋๋ค๋ ์๋ฏธ)
- C์ธ์ด์์๋ malloc() ํจ์๋ฅผ ์ด์ฉํด ์ํ๋ ๋งํผ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ๋ณด ๊ฐ๋ฅ
- malloc() ํจ์๋ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ฑ๊ณตํ๋ฉด ์ฃผ์๋ฅผ ๋ฐํํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด null์ ๋ฐํ
- malloc() ํจ์๋ <stdlib.h> ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ์๋์ด ์์
malloc(ํ ๋นํ๊ณ ์ ํ๋ ๋ฐ์ดํธ ํฌ๊ธฐ)
๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ํจ์
- ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ํํ ๋๋ง๋ค ํ ๋น๋๋ ํฌ์ธํฐ์ ์ฃผ์๋ ๋ณ์น์ (๋ฉ๋ชจ๋ฆฌ ์ ๋จ์์๋ ๊ณต๊ฐ์ ์์์ ํ ๋นํด์ค)
- ์คํํ ๋๋ง๋ค ์ฃผ์๊ฐ ๋ฐ๋
- ๋์ ์ผ๋ก ํ ๋น๋ ๋ณ์๋ <ํ ์์ญ>์ ์ ์ฅ๋จ
- ์ ํต์ ์ธ C์ธ์ด์์๋ ์คํ์ ์ ์ธ๋ ๋ณ์๋ ๋ฐ๋ก ๋ฉ๋ชจ๋ฆฌ ํด์ ๋ฅผ ํด์ฃผ์ง ์์๋ ๋จ
- ๋ฐ๋ฉด์ ๋์ ์ผ๋ก ํ ๋น๋ ๋ณ์๋ ๋ฐ๋์ free() ํจ์๋ก ๋ฉ๋ชจ๋ฆฌ ํด์ ๋ฅผ ํด์ฃผ์ด์ผ ํจ(malloc๊ณผ free๋ ํ ์)
- ๋ฉ๋ชจ๋ฆฌ ํด์ ๋ฅผ ํ์ง ์์ผ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋ด์ ํ๋ก์ธ์ค ๋ฌด๊ฒ๊ฐ ๋ํด์ ธ ์ธ์ ๊ฐ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฒ ๋จ
- ๋ฉ๋ชจ๋ฆฌ ๋์ ๋ฐฉ์ง๋ ์ฝ์ด ๊ฐ๋ฐ์์ ํต์ฌ ์ญ๋
- ๋์ ํ๋ฅ ๋ก ๊ฐ์ ์ฃผ์๊ฐ์ (๋น์ด์์ด์ ํ ๋นํ๋ค๊ฐ ํด์ ํ์๋ง์ ๋ค์ ์ฌํ ๋นํด์)
๋์ ์ผ๋ก ๋ฌธ์์ด ์ฒ๋ฆฌํ๊ธฐ
- ์ผ๊ด์ ์ธ ๋ฒ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ชจ๋ ํน์ ํ ๊ฐ์ผ๋ก ์ค์ ํ๊ธฐ ์ํด์๋ memset()์ ์ฌ์ฉ
memset(ํฌ์ธํฐ, ๊ฐ, ํฌ๊ธฐ);
- ํ ๋ฐ์ดํธ์ฉ ๊ฐ์ ์ ์ฅํ๋ฏ๋ก ๋ฌธ์์ด ๋ฐฐ์ด์ ์ฒ๋ฆฌ ๋ฐฉ์๊ณผ ํก์ฌ
- ๋ฐ๋ผ์ memset() ํจ์๋ <string.h> ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ์ธ๋์ด ์์
๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ๋ค์ํ ์์
- ์์ ํ๋ก๊ทธ๋จ์ free ์ ํด์ค๋ ๋ฌธ์ ๊ฐ ์ ๋ ์ ์์ง๋ง ํฐ ํ๋ก์ ํธ์์๋ ๊ผญ ํด์ ํด์ค์ผํจ