4 ms·
Infinite loop in C
- laveur 13y agoThere 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.
- drivers99 13y ago"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.
- tompko 13y agoTechnically 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.
- drivers99 13y agoHuh? 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.