C++ 剩余堆大小

C++ 剩余堆大小,c++,heap-memory,C++,Heap Memory,我知道这可能过于简单,但我需要知道我可以在程序中分配多少可用内存。 这是一个windows mobile项目(c++),看起来我可能在某处隐藏了内存泄漏。调用一个返回我可以访问的堆存储的剩余大小(或剩余块)的函数将是完美的。 有没有办法遍历操作员新使用的可用内存块?或者一个内置的WINAPI(或winmobile)函数来实现它?您签出了吗 这是下载的一部分 入门视频教程:您签出了吗 这是下载的一部分 入门视频教程:请查看。它将提供一定数量的可用物理内存。请注意,较旧的Windows CE对每个进

我知道这可能过于简单,但我需要知道我可以在程序中分配多少可用内存。 这是一个windows mobile项目(c++),看起来我可能在某处隐藏了内存泄漏。调用一个返回我可以访问的堆存储的剩余大小(或剩余块)的函数将是完美的。 有没有办法遍历操作员新使用的可用内存块?或者一个内置的WINAPI(或winmobile)函数来实现它?

您签出了吗

这是下载的一部分

入门视频教程:

您签出了吗

这是下载的一部分


入门视频教程:

请查看。它将提供一定数量的可用物理内存。请注意,较旧的Windows CE对每个进程强制执行32MB的限制(Windows CE 6.0取消了此限制)。

请退出。它将提供一定数量的可用物理内存。请注意,较旧的Windows CE对每个进程强制执行32MB的限制(Windows CE 6.0提高了此限制)。

请查看堆状态报告功能:

首先,包括crtdbg:

    #include <crtdbg.h>
这将像这样输出到“调试输出”窗口:

      0 bytes in 0 Free Blocks.
      56596 bytes in 2056 Normal Blocks.
      17895 bytes in 83 CRT Blocks.
      0 bytes in 0 Ignore Blocks.
      0 bytes in 0 Client Blocks.
      Largest number used: 74491 bytes.
      Total allocations: 240054 bytes.
默认的堆保留空间是1MB,这可以在项目属性、配置属性、链接器、系统、“堆保留大小”(VS 2010)中进行调整

您可能还需要查看_crtsetdbglag

查看堆状态报告函数:

首先,包括crtdbg:

    #include <crtdbg.h>
这将像这样输出到“调试输出”窗口:

      0 bytes in 0 Free Blocks.
      56596 bytes in 2056 Normal Blocks.
      17895 bytes in 83 CRT Blocks.
      0 bytes in 0 Ignore Blocks.
      0 bytes in 0 Client Blocks.
      Largest number used: 74491 bytes.
      Total allocations: 240054 bytes.
默认的堆保留空间是1MB,这可以在项目属性、配置属性、链接器、系统、“堆保留大小”(VS 2010)中进行调整

您可能还需要查看_crtsetdbglag

现在就试试,谢谢你的建议。问题是,我的程序在分配了一定数量的内存后崩溃,因此我希望在VS的调试模式下运行,并在崩溃之前检查堆大小。另外,由于某些原因,“kill application”按钮没有任何效果,我现在也没有得到任何统计数据,谢谢你的建议。问题是,我的程序在分配了一定数量的内存后崩溃,因此我希望在VS的调试模式下运行,并在崩溃之前检查堆大小。另外,由于某些原因,“kill application”按钮没有任何效果,我在崩溃后也没有得到任何统计数据