FAQ

ERR=0011が発生する

実行エラー11h「アプリケーションスタックオーバーフロー」が発生するのですが、原因と対処方法を教えてください。 また、実行エラー07h「メモリが足りません(ネストが深すぎるなど)」との違いは何でしょうか?

実行エラー11hは、BASICステートメントや関数の実行に使われる作業メモリ(アプリケーションスタック)が 無くなった時に発生し、発生要因としては、以下が考えられます。

  1.   1.ユーザ定義関数の呼び出しネスト段数が深い。
       プログラム構造を見直して、ユーザ定義関数の呼び出しネスト段数を減らしてください。
  2.   2.動的(ローカルスコープ)な変数確保量が多い。
       グローバル変数を利用したり、引数変数は参照渡しとするなど、ローカルスコープ変数の確保量を減らしてください。 

特に、このエラーは、再帰的にユーザ定義関数を呼び出したり、関数からのエラートラップ時に関数に戻っていない、といった、実行経路異常により、異常なネスト、ローカル変数の未開放が発生して、起きる可能性が考えられます。エラー発生箇所(ERLアドレス)までの実行経路を、十分に見直してください。

実行エラー07hとの差異は、07hはBHT-BASICが管理できる最大ネスト段数を超えた場合に発生し、11hは最大段数に達する前にスタックメモリが足りなくなった場合に発生するという点です。 

お問合せ

QBdirect

まだ会員に登録されていない方

本会員専用サイトにおけるサービスは、会員登録していただいた上でのみご利用いただけます。

新規会員登録