Programming/Algorithm

[2020-02-04] 01. ์†Œํ”„ํŠธ์›จ์–ด ๋ฒ ์ด์ง - 15

๊ธธ๊ฑฐ๋ฆฌ์™€ํ”Œ 2020. 2. 5. 00:52

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 ์•ˆ ํ•ด์ค˜๋„ ๋ฌธ์ œ๊ฐ€ ์•ˆ ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ํฐ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๊ผญ ํ•ด์ œํ•ด์ค˜์•ผํ•จ