none
release _CRT_DEBUGGER_HOOK RRS feed

  • 问题

  • typedef struct _tWhiteInfo       
    {
        char    ID[13];              
    }TWHITEINFO , *PTWHITEINFO ;
    typedef vector<TWHITEINFO>        TWhiteVec;
    typedef struct _tWhiteList       
    {
        TWhiteVec    whiteList;        // 白名单信息
    } TWHITELIST, *PTWHITELIST;    我定义的一个结构体PTWHITELIST指针里包含了容器TWhiteVec。在release模式下运行以下函数,声明在debug下通过。

    函数在pWhiteList->whiteList.push_back(whiteInfo);下执行报错,进入了文件dbghook.c,函数名是_CRT_DEBUGGER_HOOK。声明whiteInfo是非空值,但一执行就在此报错。

    求救,求高手指点为什么,是我代码里面的堆栈坏了,还是内存问题,或者其他问题,希望各位能给个方向,找了一天问题了,很崩溃

    2011年7月18日 9:32

答案

  • #include "stdafx.h"
    
    
    
    #include <vector>
    
    using namespace std;
    
    
    
    typedef struct _tWhiteInfo  
    
    {
    
      char ID[13];    
    
    }TWHITEINFO , *PTWHITEINFO ;
    
    
    
    typedef vector<TWHITEINFO>  TWhiteVec;
    
    
    
    typedef struct _tWhiteList  
    
    {
    
      TWhiteVec whiteList;  // 白名单信息
    
    }TWHITELIST, *PTWHITELIST; 
    
     
    
     int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
    
    {
    
    	PTWHITELIST pWhiteList = new TWHITELIST;
    
    	TWHITEINFO whiteInfo1 = {"Hello"};
    
    	TWHITEINFO whiteInfo2 = {"World"};
    
    	TWHITEINFO whiteInfo3 = {"HI-World"};
    
    	pWhiteList->whiteList.push_back(whiteInfo1);
    
    	pWhiteList->whiteList.push_back(whiteInfo2);
    
    	pWhiteList->whiteList.push_back(whiteInfo3);
    
    
    
    	TWhiteVec::const_iterator iter = pWhiteList->whiteList.begin();
    
    	
    
    	for(; iter != pWhiteList->whiteList.end(); ++iter)
    
    	{
    
    		printf("%s\n", iter->ID);
    
    	}
    
    
    
    	delete pWhiteList;
    
    	pWhiteList = NULL;
    
    	return 0;
    
    }
    
    


    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.
    2011年7月18日 11:32
    版主