문자열 fgets로 입력받아서 거꾸로 출력해주는 코드입니다.


1번과 2번 모두 동일한 기능을 수행할 것으로 기대하고 만들었는데, 1번은 작동하나, 2번은 경우에 따라서

작동하지 않습니다. 



1번

int main(void)

{

char str[N];

fgets(str, N, stdin);


int len = strlen(str)-1;


for (int i = 0; i < len; i++)

{

printf("%c", str[len - i - 1]);

}


return 0;

}



2번

char* get_str(void)

{

char* str[N];

fgets(str, N, stdin);


return str;

}


void print_reverse(char* str_input)

{

int len = strlen(str_input)-1;


for (int i = 0; i < len; i++)

{

printf("%c", str_input[len - i - 1]);

}

}


int main()

{

char* original = get_str();

print_reverse(original);


return 0;

}



혹시 2번 코드에서 어떤 부분을 수정해야 정상적으로 돌아갈지 알려주실 분 계신가요