Actually, I'd say the stupidity is in using a runtime assert, when a
compile-time assert will do the trick (not using CPU at runtime, while enforcing the condition). Unless memory fails me, in C++ you can implement ct_assert(x) like: typedef char[x!=0] foo; as an array of size zero is an error. How does current C compilers react to typedefs of zero-sized arrays? Sure, one can't use it exactly as in C++, but it could still be useful to at least know about this idiom. Problems should be trapped as early as possible.