ÇÁ·Î±×·¡¹Ö

 3198, 1/160 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   lawsoul
   ¾È³çÇϼ¼¿ä c¾ð¾î Ãʺ¸ÀÚ µµ¿òÁ» ÁÖ¼¼¿ä(3) [C¾ð¾î]

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


int main(void)
{
        int num1=1, num2=2, num3=3;
        int*ptr1=&num1;   //num1ÀÇ ÁÖ¼Ò°ªÀ» int*ptr1 ¿¡ ÀúÀåÇÑ´Ù.
        int*ptr2=&num2;   //num2ÀÇ ÁÖ¼Ò°ªÀ» int*ptr1 ¿¡ ÀúÀåÇÑ´Ù.
        int*ptr3=&num3;   //num3ÀÇ ÁÖ¼Ò°ªÀ» int*ptr1 ¿¡ ÀúÀåÇÑ´Ù.

        int*ptrarr[]={ptr1,ptr2,ptr3};  //int*ptrarr[] À̶ó´Â ¼±¾ðÀ»Çϰí ptr1,2,3,À¸·Î ÃʱâÈ­
        int**dptr=ptrarr;        //int**dptr À» ¾ð¼±Çؼ­ = ptrarr;ÀÇ ÁÖ¼Ò°ªÀ» ÀúÀåÇÑ´Ù.
        int***tptr=dptr;
        printf("%d %d %d \n\n",**tptr[0],**tptr[1],**tptr[2]);  //<==¹®Á¦ÀÇ ºÎºÐ

        return 0;
}

¾È³çÇϼ¼¿ä. c¾ð¾î Ãʺ¸ µµ¿òÁ»ÁÖ¼¼¿ä~

Àú±â À§ÀÇ ¹®Á¦ÀÇ ºÎºÐ¿¡¼­.

printf("%d %d %d \n\n",**tptr[0],**tptr[1],**tptr[2]);
À§¹®ÀåÀÇ ¶æÀº  tptr Æ÷ÀÎÅÍÀÇ ÀüÀü´Ü°è ±×·¯´Ï±î
ptrarr À» Ãâ·ÂÇ϶ó´Â ¶æÀÌ ¾Æ´Ñ°¡¿ä?

ÀÌ·¸°Ô¹Ù²Ù¸é ¹®Á¦¾øÀÌ ½ÇÇàÀ̵Ǵµ¥.
printf("%d %d %d \n\n",*tptr[0],*tptr[1],*tptr[2]);   <== Æ÷ÀÎÅÍ* 1°³ »èÁ¦
ÀÌ ¹®ÀåÀº dptrÀ» °¡¸£Å°´Â ¹®ÀåÀÌ µÇ°ÚÁÒ?

c¾ð¾î¿¡¼­ ´õºíÆ÷ÀÎÅÍ¿¡ Á¢±Ù¹æ¹ýÀº ¿¹¸¦µé¾î.

int num;
int*one=#
int**two=one;
int***three=two;

int***three Æ÷ÀÎÅÍ¿¡¼­ int*one Æ÷ÀÎÅͷδ Çѹø¿¡ Á¢±ÙÀÌ ºÒ°¡´ÉÇѰ¡¿ä?

printf("%d %d %d \n\n",**tptr[0],**tptr[1],**tptr[2]);

À§ ¿¹Á¦ 󷳸»ÀÌÁÒ.


C¾ð¾î Ãʺ¸ÀÔ´Ï´Ù µµ¿ÍÁÖ¼¼¿ä.



PS. °í¿äÇÑ ¹ãÀÔ´Ï´Ù.¤¾¤¾



  


  Hit : 4134     Date : 2012/01/15 11:33



    
sohun5013 ¾î.. Àú°Å ÄÄÆÄÀÏÀº µÇµµ Access violation(À߸øµÈ ÁÖ¼Ò Á¢±Ù.. 0ÁÖ¼Ò¸¦ Á¢±ÙÇß´Ù´ø°¡)·Î ¿¡·¯³ª´Â °Å °°Àºµ¥¿ä.

ÀÏ´Ü int ***three¿¡¼­ one¿¡ Á¢±ÙÇÏ´Â ¹æ¹ýÀº **three¸¦ ¾²¸é µË´Ï´Ù.
**three = *(*three) = *(two) = *two = one À̰ŵç¿ä.

¼Ò½º ÀÌ»óÇÑ °Ç ´ä±Û·Î ´Þ°Ú½À´Ï´Ù. ¾²°íº¸´Ï ¾çÀÌ Á» µÇ³×¿ä.
2012/01/16