C++

๋™์  ํ• ๋‹น: Dynamic Memory Allocation ์šฐ๋ฆฌ๋Š” ๊ทธ๋™์•ˆ ์ •์  ํ• ๋‹น์„ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ •์  ํ• ๋‹น์„ ํ†ตํ•˜๋ฉด, ์ปดํŒŒ์ผ์„ ํ•  ๋•Œ์— ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ• ๋‹น๋˜๊ณ , ์ด๋Š” ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ์‹œ๊นŒ์ง€ ๋ณ€๋™๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด, ํ”„๋กœ๊ทธ๋žจ ๋‚ด๋ถ€์—์„œ ์–ด๋– ํ•œ ์ •์ˆ˜ x๋ฅผ ์„ ์–ธํ•˜์˜€๋‹ค๋ฉด, ๊ทธ ๋ณ€์ˆ˜์˜ ๊ฐ’์€ ๋ณ€ํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ ๋ณ€์ˆ˜์—๊ฒŒ ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋๊นŒ์ง€ ๋ณ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ๋Š” sizeof ํ•จ์ˆ˜๋กœ ์•Œ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ์— ๋ฐ˜ํ•ด ๋™์ ํ• ๋‹น์€ ์ปดํŒŒ์ผ์„ ํ•  ๋•Œ๊ฐ€ ์•„๋‹Œ, ๋Ÿฐํƒ€์ž„ ๋„์ค‘์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ๋™์  ํ• ๋‹น์„ ํ†ตํ•ด Heap ์˜์—ญ์— ๋ฐ์ดํ„ฐ๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋™์  ํ• ๋‹น์€ ํž™ ์˜์—ญ์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ํ• ๋‹น๋œ ๊ฐ’์— ๋Œ€ํ•œ ์ ‘๊ทผ์€ ํฌ์ธํ„ฐ๋ฅผ ํ†ตํ•ด์„œ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. C++ ..
์—ญ์ฐธ์กฐ (Dereferencing) ๋ชจ๋‘ ์•Œ๋‹ค์‹œํ”ผ ํฌ์ธํ„ฐ๋Š” ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ์˜ ์ฃผ์†Ÿ๊ฐ’์„ ์ €์žฅํ•ด๋†“๋Š” ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋„ ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด์„œ ์›ํ•˜๋Š” ์œ„์น˜์— ๋ฐฉ๋ฌธํ•ฉ๋‹ˆ๋‹ค. C++์—์„œ๋„ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๋‹น์—ฐํžˆ ํฌ์ธํ„ฐ์˜ ๊ฐ’์œผ๋กœ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์ฃผ์†Œ๋ฅผ ์•ˆ๋‹ค๋ฉด, ๊ทธ ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์œ„์น˜์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜๋„ ์žˆ๊ฒ ์ฃ ? ์ด๊ฒƒ์„ ์šฐ๋ฆฌ๋Š” ์—ญ์ฐธ์กฐ (Dereferencing) ๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๋ฐฉ๋ฒ•์€ ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ํฌ์ธํ„ฐ๋ฅผ ์„ ์–ธํ•  ๋•Œ, ๋ณ€์ˆ˜์™€ ๋‹ค๋ฅธ ๋ถ€๋ถ„์ด ์–ด๋–ค ๊ฒƒ์ด์˜€๋Š”์ง€ ๊ธฐ์–ต์ด ๋‚˜์‹œ๋‚˜์š”? ๋ณ€์ˆ˜์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ํฌ์ธํ„ฐ์˜ ์ด๋ฆ„ ์•ž์— asterisk(*) ๋งˆํฌ๋ฅผ ๋ถ™์˜€์Šต๋‹ˆ๋‹ค. ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” ๊ฐ’(์ฃผ์†Œ)๋ฅผ ๋”ฐ๋ผ๊ฐ€์„œ ์žˆ๋Š” ์œ„์น˜์— ์ €์žฅ๋œ ๊ฐ’์„ ์กฐํšŒํ•  ๋•Œ๋„ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๋ณ€์ˆ˜๋ช… ์•ž์— *๋ฅผ ๋ถ™์ด๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์„ ์–ธํ•  ๋•Œ์™€ ๋™์ผํ•œ synta..
C++์—์„œ๋Š” & ๊ธฐํ˜ธ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์˜ ์ฃผ์†Œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ’์€ 16์ง„์ˆ˜ ์ˆซ์ž๋กœ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค. ์˜ˆ์‹œ๋ฅผ ๋ณด์—ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. #include using namespace std; int main() { int num{10}; cout
ํฌ์ธํ„ฐ์˜ ์„ ์–ธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. variable_type *pointer_name; asterisk(*)๋งŒ ์—†์–ด์ง€๋ฉด ๋ณ€์ˆ˜์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์‹œ int *int_ptr; double *double_ptr; char *char_ptr; string *string_ptr; ํ•˜์ง€๋งŒ, ์ค‘์š”ํ•œ ๊ฒƒ์€ ์„ ์–ธ๊ณผ ๋™์‹œ์— ์ดˆ๊ธฐํ™”๋ฅผ ํ•ด ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐํ™”๋ฅผ ํ•˜์ง€ ์•Š์œผ๋ฉด ํฌ์ธํ„ฐ์— ์“ฐ๋ ˆ๊ธฐ ์ฃผ์†Œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐํ™”๊นŒ์ง€ ํ•œ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฉ๋‹ˆ๋‹ค. variable_type *pointer_name {nullptr}; ์˜ˆ์‹œ int *int_ptr {}; double *double_ptr {nullptr}; char *char_ptr {nullptr}; string *string_ptr {nullptr};
Chan Lee
'C++' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (8 Page)