Because your code invokes undefined behavior (you make fgets()
write past the end of your buffer), so it can do anything it pleases.
why passing greater buffer size to fgets allowed by compiler
Question
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);
Solution
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow