ÇÁ·Î±×·¡¹Ö

 3200, 1/160 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   soul214
   (char*)&integer....

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3446 [º¹»ç]


int a = 10;
À¸·Î ¼±¾ðÇßÀ» ¶§¿¡..

(char*)a ´Â Á¤¼ö aÀÇ °ªÀ» char¹®ÀÚ¿­·Î º¯È¯ÇѰÅÀݾƿä??

±×·±µ¥, (char*)&a ´Â ¹«½¼ Àǹ̰¡ µÇ´Â°Ç°¡¿ä??...

aÀÇ ÁÖ¼Ò¸¦ ¹®ÀÚ¿­·Î º¯È¯Çϴ°ǰ¡¿ä??..

Àú´Â...&((char*)a)°¡ ¸Â´Ù°í »ý°¢Çß¾ú°Åµç¿ä??....a¸¦ ¹®ÀÚ¿­·Î ¹Ù²Û ÈÄ,  ±×°É ÁÖ¼Ò·Î º¯È¯½Ã۴°Ô;;;

(char*)&a´Â...aÀÇ ÁÖ¼Ò¸¦ ¹®ÀÚ¿­·Î º¯È¯Çϴ°ǵ¥...ÁÖ¼Ò°¡ Á¤¼öÇüÀÌ ¾Æ´Ï¶ó ¹®ÀÚ¿­·Î µÇ¾î¹ö¸®´Â°Ç°¡¿ä??;;;

  Hit : 5906     Date : 2012/06/26 02:44



    
chasper0101 ´õºíÆ÷ÀÎÅÍÀÇ °³³äÀ¸·Î »ý°¢ÇÏ½Ã¸é µÇ¿ä.. 2012/06/27  
soul214 Á¶±Ý´õ ÀÚ¼¼È÷ ¼³¸íÀº ¾ÈµÉ±î¿ä??.. 2012/06/28  
wolverine int a = 10;
compiler/linker¿¡ ÀÇÇØ¼­ º¯¼ö aÀÇ memory address°¡ °áÁ¤µÇ°í, ±×°÷¿¡ 10À̶ó´Â °ªÀÌ ÀúÀåµË´Ï´Ù.

(char*)a
a¶ó´Â º¯¼ö¿¡ ÀÖ´Â 10À̶ó´Â °ªÀÌ char pointer ÇüÅ·ΠÇüº¯È¯(casting)ÀÌ µË´Ï´Ù.

(char*)&a
aÀÇ memory address°¡ char pointer ÇüÅ·ΠÇüº¯È¯(casting)ÀÌ µË´Ï´Ù.

¿¹¸¦ µé¾î¼­ ´ÙÀ½°ú °°ÀÌ memory°¡ ÀâÇô ÀÖ´Ù°í °¡Á¤À» ÇßÀ»°æ¿ì,

address value
0x1000 10 <---- º¯¼ö a°¡ ÇÒ´ç(alloate) µÈ °÷
0x1001 11
0x1002 12
0x1003 0

0x000a xx
0x000b xx
0x000c xx

(char*)a ´Â 10À̶ó´Â °ªÀ» ¹ÝÇÑÇÕ´Ï´Ù.
µû¶ó¼­ À̰ÍÀ» stringÀ¸·Î ÀÌ¿ëÇÏ°Ô µÇ¸é,
0x000a(10) ¹øÁö¿¡ ÀúÀåµÇ¾î ÀÖ´Â °ªµéÀÌ stringÀ¸·Î ÀÌ¿ëµË´Ï´Ù.
¸¸¾à ÇöÀç memory°¡ À§ÀÇ °æ¿ì¿Í °°À»¶§¿¡ printf("%s", (char*)a) ¶ó°í ÇϰԵǸé,
printf ÇÔ¼ö´Â 0x000a¹øÁö¿¡ ÀÖ´Â °ªÀ» stringÀ¸·Î ÀνÄÇÏ¿©¼­
xx¸¦ Ãâ·ÂÇϰԵǸç, À̶§¿¡, xx°ªÀÌ '0'ÀÌ µÉ ¶§±îÁö stringÀ» Ãâ·ÂÇÕ´Ï´Ù.

(char*)&a´Â 0x1000 À̶ó´Â °ªÀ» ¹ÝȯÇÕ´Ï´Ù.
µû¶ó¼­ À̰ÍÀ» stringÀ¸·Î ÀÌ¿ëÇÏ°Ô µÇ¸é,
0x1000 ¹øÁö¿¡ ÀúÀåµÇ¾î ÀÖ´Â °ªµéÀÌ stringÀ¸·Î ÀÌ¿ëµË´Ï´Ù.
¸¸¾à ÇöÀç memory°¡ À§ÀÇ °æ¿ì¿Í °°À»¶§¿¡ printf("%s", (char*)&a) ¶ó°í ÇϰԵǸé,
printf ÇÔ¼ö´Â 0x1000¹øÁö¿¡ ÀÖ´Â °ªÀ» stringÀ¸·Î ÀνÄÇÏ¿©¼­
ASCII 10,11,12¸¦ Â÷·Ê´ë·Î Ãâ·ÂÇϰԵǸç,
0ÀÌ ³ª¿À°ÔµÇ´Â ½ÃÁ¡¿¡¼­ Ãâ·ÂÀ» Á¾·áÇÏ°Ô µË´Ï´Ù.
2012/07/04