#include #include static jmp_buf env; static void inner() { longjmp(env, 1); } static void middle() { void *ptr = malloc(1024); inner(); free(ptr); } void outer() { int i = setjmp(env); if (i == 0) middle(); } int main() { outer(); }