1

最新の SDK を使用して iOS アプリケーションを開発しています。

このアプリにはいくつかの C++ クラスがあります。

そのクラスのメソッドを呼び出すと、エラーが発生します。

これは C++ クラスの一部です。

#ifdef __APPLE__
    const char* path = jFileName ;
    const char* tempPath =  jTempFileName ;

    const char* truckPath = jTruckFileName;
    const char* truckTempPath = jTruckTempFileName;
#endif

    MyFunction(path,tempPath);

有効な値MyFunction(path,tempPath);を持っpathtempPathいます。

しかし、ここでエラーが発生します:

void MyFunction(const char* inFileName, const char* outFileName)
{
    [ ... ]
    unsigned char inbuf[1024000], outbuf[1024000];

    [ ... ]
}

コメントを追加すると、エラーがここにあることがわかりましたunsigned char inbuf[1024000], outbuf[1024000];。関数にその行しかない場合。

このエラーはデバイスでのみ表示されます。

どこに問題があるかを知るにはどうすればよいですか?

4

2 に答える 2

2

あなたのスタックはそれほど大きくありません:

 unsigned char inbuf[1024000], outbuf[1024000];

代わりにヒープ割り当てを使用します。

std::vector<unsigned char> inbuf(1024000, 0), outbuf(1024000, 0);

または、作業を分割して、より小さなスタック バッファーを使用できるようにします。


コンパイラはバッファをスタックに置く必要はありませんが、この場合はおそらく必要です。

于 2013-03-07T13:57:18.687 に答える
1

に答える

問題がどこにあるかをどうやって知ることができますか?

例外ブレークポイントを有効にしてデバッグしてみてください。

  1. ブレークポイントナビゲーターに移動します
  2. 「+」記号をクリックします
  3. [例外ブレークポイントの追加]をクリックします
  4. 「完了」をクリックします

また、有効なゾンビオブジェクトを使用してデバッグしてみてください。そのためには、 [製品]- > [スキームの編集]に移動し、 [ゾンビオブジェクトを有効にする]をオンにします。

于 2013-03-07T13:29:44.497 に答える