2

_CrtMemState由返回的结构_CrtMemCheckpoint()包含一个size_t lHighWaterCount成员,该成员给出了自应用程序启动以来的最大内存使用量。我正在编写一个关心高水位线的测试台,但它在一次运行中运行多个测试,我只能在第一次测试中可靠地获得高水位线:如果高水位线在第二次测试,我只知道高水位线小于或等于第一次测试。

有没有办法将 CRT 调试堆的高水位标记重置为当前分配大小?

4

1 回答 1

2

不,无法重置此计数器。

考虑另一种解决方案:在每个测试开始时注册一个分配挂钩(通过_CrtSetAllocHook),在该测试期间保持您自己的高水位计数,然后在测试结束时取消注册您的挂钩。

于 2013-10-26T05:13:26.817 回答