I have the following code:
char str[0]; // 0 length
while(fgets(str, 100, stdin)) { // It works.
fputs(str, stdout);
}
But if I do without loop, then it breaks. like this;
fgets(str, 100, stdin);
fputs(str, stdout);
Because your code invokes undefined behavior (you make fgets()
write past the end of your buffer), so it can do anything it pleases.