4

奇妙なヒープの破損があり、_CrtCheckMemory を使用して発見しようとしています。

_CrtCheckMemory 関数が true を返す場合、メモリ * が正常であることを 100% 意味しますか?

false が返された場合は明らかだと思いますが、メモリ内で何か問題が発生しています。

関連するコードは次のとおりです。

assert( _CrtCheckMemory() );
renderText( x + (max_height/4.0) * w, y + (fm.descent() + (label.shadedText ? 1.0 : 0.0)) * h, 0.0, label.text, label.font );
assert( _CrtCheckMemory() );

最初の呼び出しは true を返しますが、2 回目の呼び出しは false を返します。renderText は QGLWidget::renderText 呼び出しであり、label は renderText が呼び出される前後の有効なオブジェクトです。

*: ヒープのことです

4

1 に答える 1

1

私の経験では、_Crt... デバッグ関数はうまく機能しますが、軽量であるため、絶対確実ではありません。テストを fm.descent() 内にプッシュする必要があります

于 2012-07-25T06:55:34.527 に答える