char* str = (char*)malloc(0);

gets(str);

puts(str);


에서 아무리 긴 문자열을 입력해도 에러없이 동작하는 이유가 뭐야?