assert.h - Linux


The assert.h header file defines the assert() macro, which is used for debugging purposes. It allows a programmer to specify a logical condition that, if false, will cause the program to abort with an error message.


void assert(int expression);
  • expression: A logical expression that should evaluate to true.


There are no options or flags available for the assert() macro.


Simple usage:

int x = 5;
assert(x > 0); // Assertion will pass

Complex usage:

int *ptr = malloc(sizeof(int));
if (ptr == NULL) {
    assert(0); // Assertion will fail

Common Issues

  • Forgetting to test: It’s easy to forget to add assert() statements to your code. This can lead to hard-to-find bugs.
  • Using assert() in production code: assert() is intended for use in debugging, not in production code. Assertions can slow down your program and can be easily disabled by a precompiler flag.


The assert() macro can be used with other debugging tools, such as gdb, to help identify and fix bugs.

Related Commands

  • gdb: A debugger that can be used to step through your code and examine the values of variables.
  • valgrind: A tool that can be used to detect memory leaks and other memory errors.