none
_CrtMemstate类型的结构的英文释义 RRS feed

  • 问题

  • 在crtdbg.h中定义的_CrtMemState:

    typedef struct _CrtMemState

    {

          struct _CrtMemStateHeater* pBlockHeader; //Ptr to most recently allocated block

          unsigned long lCounters[_MAX_BLOCKS];      //Counter for eack type of block

         unsigned long lSizes[_MAX_BLOCKS];             //Total bytes allocated in each block type

         unsigned long lHighWaterCounter;                 //The most bytes allocated at a time up to now

         unsigned long lTotalCounter;                          //The total bytes allocated at present

    }_CrtMemState;

    由于本人的英文能力不强,请帮忙将英文注释翻译并适当释义以帮助我理解这个结构的成员存储的究竟是内存状态的一些什么内容;

    谢谢!

        


    2012年9月5日 9:03

答案

  • 您好,

    _CrtMemState结构可以用来存储一个内存状态的快照。

    typedef struct _CrtMemState
     
    {
          struct _CrtMemStateHeater* pBlockHeader; //指向最近分配的内存块的指针
     
          unsigned long lCounters[_MAX_BLOCKS]; //每个块的字段类型计数器
     
         unsigned long lSizes[_MAX_BLOCKS]; //各个块中分配的字节总数
     
         unsigned long lHighWaterCounter; //目前为止一次性分配的最大字节数
     
         unsigned long lTotalCounter; //目前分配的字节总数
    
    }_CrtMemState;
    

    为了在特定点对内存进行快照,可以传递一个_CrtMemState结构给_CrtMemCheckpoint函数,这个函数会用当前内存的一个快照填充_CrtMemState结构。然后再将被填充好的_CrtMemState结构传递给_CrtMemDumpStatistics函数,从而获得一些堆内存的分配信息。

    _CrtMemState s1;
    _CrtMemCheckpoint(&s1);
    _CrtMemDumpStatistics(&s1);

    Damon Zheng [MSFT]
    MSDN Community Support | Feedback to us

    2012年9月6日 8:51
    版主

全部回复

  • 高手们都去哪里了?好心的老师帮帮我呀!
    2012年9月6日 4:56
  • 您好,

    _CrtMemState结构可以用来存储一个内存状态的快照。

    typedef struct _CrtMemState
     
    {
          struct _CrtMemStateHeater* pBlockHeader; //指向最近分配的内存块的指针
     
          unsigned long lCounters[_MAX_BLOCKS]; //每个块的字段类型计数器
     
         unsigned long lSizes[_MAX_BLOCKS]; //各个块中分配的字节总数
     
         unsigned long lHighWaterCounter; //目前为止一次性分配的最大字节数
     
         unsigned long lTotalCounter; //目前分配的字节总数
    
    }_CrtMemState;
    

    为了在特定点对内存进行快照,可以传递一个_CrtMemState结构给_CrtMemCheckpoint函数,这个函数会用当前内存的一个快照填充_CrtMemState结构。然后再将被填充好的_CrtMemState结构传递给_CrtMemDumpStatistics函数,从而获得一些堆内存的分配信息。

    _CrtMemState s1;
    _CrtMemCheckpoint(&s1);
    _CrtMemDumpStatistics(&s1);

    Damon Zheng [MSFT]
    MSDN Community Support | Feedback to us

    2012年9月6日 8:51
    版主
  • 非常谢谢您!

    2012年9月6日 12:22