[ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): alita () ³¯ Â¥ (Date): 2001³â 12¿ù 13ÀÏ ¸ñ¿äÀÏ ¿ÀÈÄ 02½Ã 35ºÐ 35ÃÊ Á¦ ¸ñ(Title): [Q] char**¿Í &(char[])ÀÇ Â÷ÀÌ. strtok_rÀÇ ¼¼ ¹ø° ÀÎÀÚ typeÀÌ char **Àä, ¿©±â´Ù char[]·Î ¼±¾ðµÈ variableÀÇ pointer¸¦ ³Ñ±â´Ï typeÀÌ ¸ÂÁö ¾Ê´Ù´Â warningÀÌ ¶å´Ï´Ù. (char **)·Î cast ½ÃÅ°¸é Àß µ¹±ä ÇÏÁö¸¸ ¿Ö ÀÌ·± warningÀÌ ³ª´Â °Ç°¡¿ä? [ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): terzeron (microkid) ³¯ Â¥ (Date): 2001³â 12¿ù 13ÀÏ ¸ñ¿äÀÏ ¿ÀÈÄ 06½Ã 26ºÐ 26ÃÊ Á¦ ¸ñ(Title): Re: [Q] char**¿Í &(char[])ÀÇ Â÷ÀÌ. char **°ú &(char [])Àº ´Ù¸¥ °ÍÀ̱⠶§¹®¿¡ warningÀÌ ³ª´Â °ÍÀÌ°ÚÁÒ. Á¦°¡ Å×½ºÆ® Äڵ带 µ¹·Áº¸´Ï µÎ¹ø°´Â °á°ú°¡ Á¦´ë·Î ¾È ³ª¿À´øµ¥¿ä. ÀüÀÚ´Â ÀÌÁß Æ÷ÀÎÅ͸¦ ³Ñ°Ü¼­ ÁÖ¼Ò°ª(char *)À» ¹Þ¾Æ¿À±â À§ÇØ »ç¿ëÀÌ µË´Ï´Ù. ¿¹¸¦ µé¾î ÇÔ¼ö ³»¿¡¼­ ¿ÜºÎÀÇ º¯¼ö¸¦ °íÃļ­ ¹ÝȯÇÏ·Á¸é ÀÌ·¸°Ô ÇÒ °Ì´Ï´Ù. int a; a_function(&a); printf("%d", a); ¶ó°í Çϸé a_function¿¡¼­ a¶ó´Â º¯¼öÀÇ ÁÖ¼Ò°ªÀ» ¹Þ¾Æ¼­ a¸¦ °¡¸®Å°´Â Æ÷ÀÎÅ͸¦ °¡Áö°í a¿¡ °ªÀ» ä¿ö¼­ ¹ÝȯÇؾßÇÏ°ÚÁÒ. char *a; strtok_r(..., &a); printf("%s", a); ÀÎ °Í°ú À¯»çÇÏÁö ¾Ê½À´Ï±î? strtok_r()ÀÇ return value¸¸ ¾²Áö ¸¶½Ã°í ¼¼¹ø° parameter¸¦ Ãâ·ÂÇغ¸½Ã¸é ÀÌÇØ¿¡ µµ¿òÀÌ µÉ °Í °°½À´Ï´Ù. char string[] = "a:b:c:d:e"; char sep[] = ":"; char *temp; strtok_r(string, sep, &temp); printf("%s", temp); strtok_r(NULL, sep, &temp); printf("%s", temp); strtok_r(NULL, sep, &temp); printf("%s", temp); [ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): testors (testors) ³¯ Â¥ (Date): 2001³â 12¿ù 14ÀÏ ±Ý¿äÀÏ ¿ÀÀü 09½Ã 55ºÐ 08ÃÊ Á¦ ¸ñ(Title): Re: [Q] char**¿Í &(char[])ÀÇ Â÷ÀÌ. ¿¹¸¦ µéÀÚ¸é.. /* °¡·É ÀÌ·±½ÄÀ¸·Î char* ¿¡ NULLÀ» ¼¼ÆÃÇϴ³༮ÀÌ Àִµ¥ */ void SetPointer( char** ptr ) { ptr = 0x00000000; } int main() { char *p; char str[100]; SetPointer( &p ); /* ½ÇÁ¦·Ð ÀÌ·± ¿ëµµÀε¥.. */ SetPointer( &str ); /* ÀÌ·¸°Ô ´ëÃ¥¾øÀÌ ¾²ÀÌ´Â°Ç ¸·¾Æ¾ß µÇÁö ¾Ê°Ú½À´Ï±î? */ /* °á°ú°¡ ½±°Ô ¿¹ÃøÀÌ ¾ÈµÇÁö¿ä? ^^ */ /* ÄÄÆÄÀÏ·¯´Â ÀÌ·±°É °æ°íÇØ ÁÖ°íÀÚ ÇÏ´Â °Å°ÚÁö¿ä.. */ }