diff --git a/setjmp_test.cpp b/setjmp_test.cpp new file mode 100644 index 0000000..99247ec --- /dev/null +++ b/setjmp_test.cpp @@ -0,0 +1,26 @@ +#include +#include + +void f(int* a, int* b){ + *a += 3; + *b += 5; +} + +signed main(){ + int* heap_var = new int(1); + int stack_var = 2; + + jmp_buf buf; + + int j = setjmp(buf); + + printf("heap: %d\nstack: %d\n---\n", *heap_var, stack_var); + + if(j){ + return 0; + } + + f(heap_var, &stack_var); + + longjmp(buf, 1); +}