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
题
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);
解决方案
不隶属于 StackOverflow