10-3.µ¿Àû ¸Þ¸ð¸® ÇÒ´ç

10-3-°¡.ÇÒ´çÀÇ Çʿ伺

ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ±â À§Çؼ­´Â ¸Þ¸ð¸®°¡ ÇÊ¿äÇÏ´Ù. ½ÇÇà ÆÄÀÏ ÀÚü°¡ ¸Þ¸ð¸®¿¡ ·Îµå(Load)µÇ¾î¾ß ½ÇÇàµÉ ¼ö ÀÖÀ½Àº ¹°·ÐÀÌ°í ÇÁ·Î±×·¥ÀÌ ÀÛ¾÷À» À§ÇØ ¼±¾ðÇÏ´Â º¯¼öµéµµ ¸ðµÎ ¸Þ¸ð¸®¿¡ ÇÒ´çµÈ´Ù. ´ÙÀ½°ú °°Àº º¯¼öµéÀ» »ç¿ëÇÑ´Ù°í ÇØ º¸ÀÚ.

 

int Score;

double Rate;

 

ÄÄÆÄÀÏ·¯´Â ÀÌ µÎ º¯¼öµéÀÌ °ªÀ» Á¦´ë·Î º¸°üÇÒ ¼ö ÀÖµµ·Ï º¯¼öÀÇ Å¸ÀÔ¿¡ ¸Â´Â Å©±â¸¸Å­ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÒ °ÍÀÌ´Ù. Scoreº¯¼ö´Â Á¤¼öÇüÀ̹ǷΠ4¹ÙÀÌÆ®°¡ ÇÒ´çµÇ°í Rate´Â ½Ç¼öÇüÀ̹ǷΠ8¹ÙÀÌÆ®°¡ ÇÒ´çµÈ´Ù. ÀÌ·± ½ÄÀ¸·Î ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¶§ ¹Ì¸® ¸Þ¸ð¸® ÇÊ¿ä·®À» ¾Ë·ÁÁÖ´Â ÇÒ´çÀ» Á¤Àû ÇÒ´ç(Static Allocation)À̶ó°í ÇÑ´Ù. Á¤¼öÇüÀ̳ª ½Ç¼öÇüÀº ¾ÆÁÖ ÀÛÀ¸¸ç ÀÌ·± º¯¼öµé ¶§¹®¿¡ Á¤Àû ÇÒ´çÀÌ ½ÇÆÐÇÏ´Â °æ¿ì´Â ±ØÈ÷ µå¹°´Ù.

µ¿Àû ÇÒ´ç(Dynamic Allocation)À̶õ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¶§(Compile Time ¶Ç´Â Design Time) ¸Þ¸ð¸® ÇÊ¿ä·®À» ÁöÁ¤ÇÏ´Â Á¤Àû ÇÒ´ç°ú´Â ´Þ¸® ½ÇÇàÁß¿¡(Run Time) ÇÊ¿äÇѸ¸Å­ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ´Â ±â¹ýÀÌ´Ù. ¾î¶² °æ¿ì¿¡ µ¿Àû ÇÒ´çÀÌ ÇÊ¿äÇÑÁö º¸ÀÚ. ÀϹÝÀûÀ¸·Î ÀÀ¿ë ÇÁ·Î±×·¥Àº ÀÚ½ÅÀÌ ÇÊ¿äÇѸ¸Å­ ¸Þ¸ð¸®¸¦ ÀÚÀ¯·Ó°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î Çлý 50¸íÀÇ ¼ºÀûÀ» ó¸®ÇÏ°í ½Í´Ù¸é ´ÙÀ½ ¹è¿­À» ¼±¾ðÇÏ¿© Á¤Àû ÇÒ´çÇÑ´Ù.

 

int arScore[50];

 

ÀÌ·¸°Ô ¼±¾ðÇϸé 50¸íºÐÀÇ ¼ºÀûÀ» ÀúÀåÇÒ ¼ö ÀÖ´Â ¸Þ¸ð¸® °ø°£ÀÌ È®º¸µÉ °ÍÀÌ´Ù. ¸¸¾à Çлý ¼ö°¡ 1000¸íÀ̶ó¸é ÷ÀÚ¸¦ 1000À¸·Î ´Ã¸®¸é µÇ°í Àü±³»ýÀÇ ¼ºÀûÀ» ´Ù ó¸®ÇÏ°í ½Í´Ù¸é ÷ÀÚ¸¦ ¾ó¸¶µçÁö ´õ Å©°Ô ´Ã¸± ¼ö ÀÖ´Ù. ¸ðÀÚ¶õ °ÍÀº ¹®Á¦°¡ µÇÁö¸¸ Á¶±Ý ³²´Â °ÍÀº ´çÀå Å« ¹®Á¦°¡ µÇÁö ¾ÊÀ¸¹Ç·Î ¿©À¯ºÐ±îÁö °í·ÁÇÏ¿© ÇÊ¿äÇÑ ÃÖ´ë Å©±â¸¸Å­ ¸Þ¸ð¸®¸¦ Á¤Àû ÇÒ´çÇÏ¸é µÈ´Ù.

±×·¯³ª ¸Þ¸ð¸® ÇÊ¿ä·®À» ÇÁ·Î±×·¥ ÀÛ¼º½Ã¿¡ ÀüÇô ¿¹ÃøÇÒ ¼ö ¾ø´Â °æ¿ì°¡ ÀÖ´Ù. ÀÌ ¼ºÀû ó¸® ÇÁ·Î±×·¥ÀÌ Æ¯Á¤ÇÑ Çб³¸¦ À§ÇÑ °ÍÀÌ ¾Æ´Ï¶ó ÀÓÀÇÀÇ Çб³¿¡ ´ëÇؼ­ »ç¿ëÇÒ ¼ö ÀÖ´Â ÀϹÝÀûÀÎ ÀÀ¿ë ÇÁ·Î±×·¥À̶ó°í ÇØ º¸ÀÚ. ÇлýÀÌ 10¸íµµ ä ¾ÈµÇ´Â ½Ã°ñ Çб³°¡ ÀÖ´Â ¹Ý¸é ¼ö¸¸¸íÀ̳ª µÇ´Â °æ¿ìµµ ÀÖÀ» °ÍÀÌ´Ù.

±×·¸´Ù°í Çؼ­ ¹è¿­ Å©±â¸¦ 100¸¸ Á¤µµ·Î ÃæºÐÇÏ°Ô Á¤Àû ÇÒ´çÇÏ´Â °ÍÀº ¸Þ¸ð¸®¸¦ Áö³ªÄ¡°Ô ³¶ºñÇÏ°Ô µÇ¹Ç·Î ÁÁÁö ¾Ê´Ù. ¹®Á¦ÀÇ ÇÙ½ÉÀº ÇÊ¿äÇÑ ¸Þ¸ð¸®¾çÀÌ ¸¹´Ù´Â °ÍÀÌ ¾Æ´Ï¶ó ¾ó¸¶³ª ÇÊ¿äÇÑÁö ¹Ì¸® ¾Ë ¼ö ¾ø´Ù´Â °ÍÀÌ´Ù. ÀÌ·± °æ¿ì´Â ½ÇÇàÁß¿¡ ÇÊ¿äÇÑ ¸Þ¸ð¸®¾çÀ» ÆÇ´ÜÇؼ­ Çлý¼ö¸¸Å­¸¸ ¸Þ¸ð¸®¸¦ ÇÒ´çÇØ¾ß ÇÑ´Ù. ±×·¸´Ù¸é ´ÙÀ½°ú °°ÀÌ Äڵ带 ÀÛ¼ºÇÒ ¼ö ÀÖÀ»±î?

 

int stNum;

printf("Çлý¼ö¸¦ ÀÔ·ÂÇØ ÁÖ¼¼¿ä. ");

scanf("%d",&stNum);

int arScore[stNum];

 

ÇÁ·Î±×·¥ ½ÃÀÛ Á÷ÈÄ¿¡ Çлý ¼ö¸¦ Áú¹®ÇÏ¿© stNum¿¡ ÀԷ¹޾ҴÙ. ±×¸®°í ÀÔ·ÂµÈ stNumÅ©±â¸¸Å­ arScore ¹è¿­À» ¼±¾ðÇß´Ù. ¾ð¶æ º¸±â¿¡´Â ÀÌ Äڵ尡 Á¦´ë·Î µ¿ÀÛÇÒ °Í °°Áö¸¸ ÄÄÆÄÀÏÇØ º¸¸é ¿¡·¯°¡ ¹ß»ýÇÒ °ÍÀÌ´Ù. ¿Ö³ÄÇÏ¸é ¾ÕÀå¿¡¼­ ÀÌ¹Ì ¾Ë¾Æ ºÃ´Ù½ÃÇÇ ¹è¿­ ¼±¾ð¹®ÀÇ Å©±â°ªÀº º¯¼ö·Î ÁöÁ¤ÇÒ ¼ö ¾ø°í ¹Ýµå½Ã »ó¼ö·Î¸¸ ÁöÁ¤ÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù. À§ ÄÚµå´Â C¸¦ ¾Æ´Â »ç¶÷µéÀÌ º¸±â¿¡ ±²ÀåÈ÷ Ȳ´çÇÑ ÄÚµåÀÌÁö¸¸ ¶ÇÇÑ Ãʺ¸ÀÚµéÀº ÀÌ Äڵ尡 µ¿ÀÛÇÏÁö ¾Ê´Â´Ù´Â »ç½Ç¿¡ ´çȲ½º·¯¿ö ÇÑ´Ù.

stNumÀ̶ó´Â º¯¼ö°ªÀº ½ÇÇàÁß¿¡ »ç¿ëÀÚ°¡ ÀÔ·ÂÇÏ´Â °ªÀ̱⠶§¹®¿¡ ÄÄÆÄÀÏÇÒ ¶§´Â ÀÌ °ªÀÌ ¾ó¸¶°¡ µÉÁö ¾Ë ¼ö ¾ø´Ù. ÄÄÆÄÀÏ·¯°¡ ¾Æ¹«¸® ¶È¶ÈÇصµ ¹Ì·¡ÀÇ ÀÏÀ» ¿¹ÃøÇÒ ¼ö´Â ¾øÀ¸¸ç µû¶ó¼­ Á¤Àû ÇÒ´ç½Ã´Â ÇÊ¿äÇÑ ¹è¿­ Å©±â¸¦ º¯¼ö·Î ÁöÁ¤ÇÒ ¼ö ¾ø´Â °ÍÀÌ´Ù. ¸Þ¸ð¸® ÇÊ¿ä·®À» ÇÁ·Î±×·¥ ÀÛ¼ºÁß¿¡ °áÁ¤ÇÒ ¼ö ¾øÀ» ¶§´Â Á¤Àû ÇÒ´çÇÒ ¼ö ¾øÀ¸¸ç µ¿Àû ÇÒ´çÀ» »ç¿ëÇØ¾ß ÇÑ´Ù.

µ¿Àû ÇÒ´çÀÌ ÇÊ¿äÇÑ ¶Ç ´Ù¸¥ °æ¿ì´Â ÀÓ½ÃÀûÀÎ ¸Þ¸ð¸®°¡ ÇÊ¿äÇÒ ¶§ÀÌ´Ù. ¿¹¸¦ µé¾î ÅؽºÆ® ÆÄÀÏ¿¡¼­ ƯÁ¤ ¹®ÀÚ¿­ÀÌ ÀÖ´ÂÁö¸¸ ¾Ë°í ½Í´Ù°í ÇÏÀÚ. ÅؽºÆ® ÆÄÀÏÀ» °Ë»öÇÏ·Á¸é ÀÏ´Ü ÀÌ ÆÄÀÏÀ» Àоî¾ß ÇÏ°í ±×·¯±â À§Çؼ­´Â ÅؽºÆ® ÆÄÀÏÀ» Àбâ À§ÇÑ ¹öÆÛ°¡ ÇÊ¿äÇÏ´Ù. ÀÌ·± ¹öÆÛ¸¦ ¹Ì¸® Á¤Àû ÇÒ´çÇØ ³õÀ» ÇÊ¿ä¾øÀÌ ÆÄÀÏ Å©±â¸¸Å­¸¸ µ¿Àû ÇÒ´çÇÑ ÈÄ ¿øÇÏ´Â ÀÛ¾÷¸¸ ÇÏ°í ÇØÁ¦ÇÏ¸é µÈ´Ù.

 

char *buf=µ¿ÀûÇÒ´ç(ÆÄÀÏÅ©±â¸¸Å­)

buf¿¡ ÆÄÀÏ ÀÐÀ½

¿øÇÏ´Â ÀÛ¾÷ - buf¿¡ ¹®ÀÚ¿­ÀÌ ÀÖ´ÂÁö Á¶»ç

buf ÇØÁ¦

 

ÀÌ ÆÄÀÏ Å©±â°¡ ÃÖ´ë 1M¶ó°í ÇÒ ¶§ char buf[1048576]°ú °°ÀÌ Àü¿ª ¹öÆÛ¸¦ Á¤Àû ÇÒ´çÇØ ³õ°í ÀÛ¾÷ÇÏ´Â °Íµµ °¡´ÉÇϱâ´Â ÇÏ´Ù. Àӽà ±â¾ï °ø°£ÀÎ ½ºÅÃÀº ¿ë·®ÀÌ ±×´ÙÁö Å©Áö ¾Ê±â ¶§¹®¿¡ buf´Â Áö¿ªº¯¼ö·Î ¼±¾ðÇÒ ¼ö ¾øÀ¸¸ç Àü¿ªÀ¸·Î¸¸ ¼±¾ðÇÒ ¼ö ÀÖ´Ù. ÇÏÁö¸¸ ÀÌ·¸°Ô Çϸé ÀÌ ÇÁ·Î±×·¥ÀÌ Ç×»ó 1M¸¦ ´õ ¾²°Ô µÇ¹Ç·Î ½Ã½ºÅÛÀÇ Àü¹ÝÀûÀÎ È¿À²ÀÌ ¶³¾îÁö°Ô µÉ °ÍÀÌ´Ù. »Ó¸¸ ¾Æ´Ï¶ó ÅؽºÆ® ÆÄÀÏÀÇ Å©±â°¡ 1M ÀÌÇÏ¿©¾ß ÇÑ´Ù´Â ±ÔÄ¢Àº ¾îµð¿¡µµ Á¸ÀçÇÏÁö ¾Ê´Â´Ù. µ¿Àû ÇÒ´çÀ̶õ ÇÊ¿äÇÒ ¶§ ÇÊ¿äÇѸ¸Å­¸¸ ¸Þ¸ð¸®¸¦ ÇÒ´çÇØ »ç¿ëÇÏ°í ´Ù ¾²¸é ¹ö¸®´Â °ÍÀÌ´Ù.

µ¿Àû ÇÒ´çµÈ ¸Þ¸ð¸®´Â À̸§ÀÌ ¾ø´Â º¯¼ö¶ó°í ÇÒ ¼ö ÀÖ´Ù. µ¶Á¡ÀûÀÎ ¸Þ¸ð¸® ¿µ¿ªÀ» Â÷ÁöÇÏ°í ÀÖÀ¸¹Ç·Î ÀÏ´Ü °ªÀ» ±â¾ïÇÒ ¼ö ÀÖÁö¸¸ À̸§ÀÌ ¾øÀ¸¹Ç·Î ¿À·ÎÁö Æ÷ÀÎÅͷθ¸ Á¢±ÙÇÒ ¼ö ÀÖ´Ù. ±×·¡¼­ malloc ÇÔ¼ö°¡ ¸®ÅÏÇÏ´Â Æ÷ÀÎÅÍ´Â ¹Ýµå½Ã ÀûÀýÇÑ Å¸ÀÔÀÇ Æ÷ÀÎÅÍ º¯¼ö·Î ´ëÀÔ¹Þ¾Æ¾ß ÇÑ´Ù. ½ÃÀÛ ¹øÁö¸¦ ÀÒ¾î¹ö¸®¸é ÇÒ´çµÈ ¸Þ¸ð¸®¸¦ ¾µ ¼ö ¾øÀ½Àº ¹°·ÐÀÌ°í ´Ù »ç¿ëÇÏ°í ³­ ÈÄ¿¡ ÇØÁ¦ÇÏÁöµµ ¸øÇÑ´Ù.