PROGRAMMING/C & C++

8. [C / C++] ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ์™€ ๋™์  ํ• ๋‹น (1)

๐’ฎ๐’ฎ๐ผ๐’ฉ_0 2019. 5. 21. 04:14

 

 

1. ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ

 

์ปดํ“จํ„ฐ์˜ ์šด์˜์ฒด์ œ๋Š” ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์„ ์œ„ํ•ด์„œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์˜ ๊ตฌ์กฐ๋Š” CDOE, DATA, HEAP, STACK 4๊ฐ€์ง€ ์˜์—ญ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 


 

 

2. CODE ์˜์—ญ

 

์ฝ”๋“œ ์˜์—ญ์€ ๋ง ๊ทธ๋Œ€๋กœ ์‹คํ–‰ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์ฝ”๋“œ๊ฐ€ ์ €์žฅ๋˜๋Š” ์˜์—ญ์ž…๋‹ˆ๋‹ค.

์˜์–ด๋กœ ํ…์ŠคํŠธ ์˜์—ญ์ด๋ผ๊ณ ๋„ ๋ถ€๋ฆ…๋‹ˆ๋‹ค. 

CPU(์ค‘์•™ ์ฒ˜๋ฆฌ ์žฅ์น˜)๋Š” ์ด ์ฝ”๋“œ ์˜์—ญ์— ์ €์žฅ๋œ ๋ช…๋ น์–ด๋“ค์„ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

(ํ•จ์ˆ˜ ์ฝ”๋“œ๋Š” ์ฝ”๋“œ์˜์—ญ์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ˜•ํƒœ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.)

 

 

 


 

 

3. DATA ์˜์—ญ

 

๋ฐ์ดํ„ฐ ์˜์—ญ์€ ํ”„๋กœ๊ทธ๋žจ์˜ ์ „์—ญ ๋ณ€์ˆ˜์™€ ์ •์  ๋ณ€์ˆ˜(static ๋ณ€์ˆ˜)๊ฐ€ ์ €์žฅ๋˜๋Š” ์˜์—ญ์ž…๋‹ˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ์˜ ํ• ๋‹น ์‹œ์ ์€ ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘์‹œ ํ• ๋‹น๋˜๋ฉฐ, ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ์‹œ ์†Œ๋ฉธ๋ฉ๋‹ˆ๋‹ค.

 

 

 


 

 

4. HEAP ์˜์—ญ

 

ํž™ ์˜์—ญ์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ง์ ‘ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์˜์—ญ์ž…๋‹ˆ๋‹ค.

ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์›ํ•˜๋Š” ์‹œ์ ์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๊ณ ,

๋˜ํ•œ ์›ํ•˜๋Š” ์‹œ์ ์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Š” ๋™์ ํ• ๋‹น์„ ํ†ตํ•ด์„œ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ง์ ‘ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 


 

 

5. STACK ์˜์—ญ

 

์Šคํƒ ์˜์—ญ์€ ํ•จ์ˆ˜์˜ ์ง€์—ญ๋ณ€์ˆ˜์™€ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋˜๋Š” ์˜์—ญ์ž…๋‹ˆ๋‹ค.

ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ๊ณผ ํ•จ๊ป˜ ํ• ๋‹น๋˜๋ฉฐ, ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ ์™„๋ฃŒ ์‹œ ์†Œ๋ฉธํ•ฉ๋‹ˆ๋‹ค.

 

 

์Šคํƒ ์˜์—ญ์€ ํ›„์ž… ์„ ์ถœ (Last In First Out)์˜ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋Š” ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ฆ‰, ๋งจ ์ฒ˜์Œ์— ํ• ๋‹น๋œ ๋ณ€์ˆ˜๋Š” ๋งˆ์ง€๋ง‰์— ์†Œ๋ฉธ์ด ๋˜๊ณ ,

๋งจ ๋งˆ์ง€๋ง‰์— ํ• ๋‹น๋œ ๋ณ€์ˆ˜๊ฐ€ ์ฒซ ๋ฒˆ์งธ๋กœ ์†Œ๋ฉธ์ด ๋˜๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.