포인터로 문자열 배열출력 안되요
글쓴이: ahsan / 작성시간: 목, 2009/03/12 - 9:34오전
#include
int main()
{
static char *time[] = {"hour", "minute", "second"};
int i,j;
char **ptr;
ptr = time;
for (i = 0; i < 3; i++)
printf("*time[%d] = %c\n", i, *time[i]);
for (i = 0; i < 3; i++)
printf("%s\n", time[i]);
for ( i = 0; i < 3; i++)
{
for ( j = 0; (*(*ptr+i)+j) != '\0'; j++);
printf("%c", *(*(ptr+i)+j));
putchar('\n');
}
}
위의 코드에서 앞의 for 문 두개는 출력이 되는데 마지막 for문에서 그냥 멈춰버립니다.
컴파일에서 에러가 출력되지 않고, warning도 나오지 않습니다.
마지막 안쪽 for 문을 배열로 처리하면
for ( j = 0; time[i][j] != '\0' ; j++)
printf("%c", time[i][j]);
putchar('\n');
정상적인 출력이 됩니다. 포인터를 잘못 표현한것인지, 제가 빠뜨린것이 있는지 궁금합니다.
가르침 부탁드립니다.
Forums:
이렇게 고쳐보세요
이걸 원하신 게 아니신지..
음..리플 달고 나오니 똑같은 코드가 ;)
댓글 달기