assert - check assumptions at run time
Standard C Library (libc, -lc)
assert checks that its argument evaluates to true. If this is not the case, an error message is printed and abort is called.
assert is a macro. If the macro NDEBUG is defined at compile time, assertion tests are removed.
Avoid writing assert expressions with side effects, as compiling with NDEBUG normally causes the side effects to disappear.