이전 포인터 동영상 강좌가 도움이 되셨나요? 사실 포인터 개념은 어려운 것은 아닙니다. 다만 실제 코딩에 적용하려고 하면 내 생각과는 다르게 에러가 발생한다든지 엉뚱하게 작동하기 때문입니다.

아래의 코드를 봐 주십시오. 포인터를 처음 접하시는 분들 중에 아래의 코드가 제대로 실행되지 않는 것을 매우 의아해하는 경우가 많더군요.

#include   <stdio.h>
#include   <ctype.h>
#include   <string.h>

int main( void)
{           
   char *str = "forum.falinux.com";
   int   ndx;
             
   for ( ndx = 0; ndx < strlen( str); ndx++)
   {                            
      str[ndx]   = toupper( str[ndx]);
   }
   
   printf( "%sn", str);   

   return 0;
}

문법적으로는 문제가 없죠? 그럼 어디에 이상이 있는 걸까요? 그것을 알아 보도록 하겠습니다.