jmp_buf をポインターとして定義し、ネストされた longjmp(s) で使用しようとしています。次のように:
...
jmp_buf *bfj;
...
そうでなければ書く:
if( setjmp(*bfj) == 0){
DS[SP-2].int_val=(int)bfj;;
//to store the bfj
}else {}
保存された bfj を longjmp に使用する別の場所
bfj = (jmp_buf *)DS[TOP].int_val;
longjmp(*bfj,1);
DS[TOP].int_val は、保存した場所です。明らかなように、ネストされた goto を実行し、保存された bfj を使用して戻りたいと考えています。しかし、デバッグしようとすると、「未処理の例外」が発生します。私はまさに出発点でこれを取得します:
if( setjmp(*bfj) == 0)
どなたか解決策を教えていただけると幸いです。