0

私の質問は、すぐに説明するのが難しいです。文脈から説明するのは難しい。したがって、スカイプで私を助けてくれる人にお金を払っても構わないと思っています。私はそれが単なる初心者の間違いだと確信しています。

基本的に、729 回ループする for ループがあります。プログラムを実行すると、ループが 366 または 367 に達したときにエラーが発生します。これがエラーです。

Exception at... ... QTimer::isSingleShot

例外ポインターは、フリーズするたびに 4 つの場所のいずれかを指しますが、QString::fill を使用すると常に指します。

ここにスナップショットがあります:http://gyazo.com/81397af78abd7be46df1bf28960e6f0d

最初はタイムアウトの問題だと思ったので、ループをスレッドに移動しました。しかし、私はまだエラーが発生します。

スレッドのヘッダー ファイルは次のとおりです。

http://gyazo.com/09fb1eafe8f42314aa918715b83a72eb

QThread::msleep(200); を追加しました。タイミングの問題かどうかを確認するためにループするたびに、ループ 366 または 367 の 4 つの場所のいずれかでフリーズします。

御時間ありがとうございます :)

4

1 に答える 1

1

したがって、0xe06d7363 コードは、Windows C ランタイムからの例外のコードでした。でキャッチすると

try{
  ///code including the .fill which allocates memory
}catch(std::exception &e){
  qDebug()<<e.what();
}

であることが判明したbad_allocため、彼は単にメモリを使い果たしました。

于 2013-10-21T05:30:00.863 に答える