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,但第二个调用返回 false。renderText 是一个 QGLWidget::renderText 调用,而 label 在调用 renderText 之前和之后是一个有效的对象。

*:我的意思是堆

4

1 回答 1

1

以我的经验,_Crt... 调试功能效果很好,但重量轻,因此并非万无一失。您应该将测试推入 fm.descent()

于 2012-07-25T06:55:34.527 回答