この単純なコードでは、メモリリークから逃れるためにデフォルトのケースでメモリを解放することに注意する必要がありますか、それとも割り当てられたメモリを使用できますか? 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;
}