在这个简单的代码中,我应该注意在默认情况下释放内存以逃避内存泄漏还是可以使用分配的内存?longjmp 是否也恢复内存分配?
#include <setjmp.h>
#include <stdlib.h>
#include <stdio.h>
int main(int argc, const char* argv)
{
jmp_buf jmpbuf;
int *p=NULL;
switch(setjmp(jmpbuf)){
case 0:
p=(int *) malloc(10*sizeof(int));
printf("%p\n",p);
longjmp(jmpbuf,1);
break;
default:
printf("%p\n",p);
free(p);
}
return 0;
}