4 comments

[ 3.3 ms ] story [ 25.3 ms ] thread
There are so many things wrong with that code its not even funny...

First off counter is of type static int. not unsigned int like the article says. Secondly j is decremented, j isn't even defined.

They are however right that it most likely will crash due to an overflow problem. Though this is not necessarily true.

"int" is signed unless you specify "unsigned". So "static int" would be a signed int that is also static.

Also, I see no reason why it would crash. Once it gets to the max value, incrementing would return some other value but I've never seen C produce a runtime error for an integer overflow.

Technically an overflow on a signed variable results in undefined behaviour so it could crash out, but all the compilers I've tried just wrap around.
Huh? Overflow in C doesn't cause a run-time error. Overflow of a signed integer is technically undefined but whatever the result is, it should just keep running.