别管了,你也管不了的.
没听说往堆new一块儿内存还要注意那么多,既然你的程序正常(确保压力测试通过喽),那就一切OK了。

解决方案 »

  1.   

    to lujianjian(老农)&xyzboat(一叶小舟)
       两位兄台说得也是,但是作为一个程序来讲,稳定性应该是最重要的,虽然目前程序是可以运行了,但是难以保证不会出现其他的问题。再说,我担当的这部分目前是作为通用部分来使用,其他人在此基础上开发,所以,一定需要一个稳定的根基!!to yangzi(笨笨) 
       堆栈分配?由于程序量比较大现在修改起来已经是不可能的了!
       所以,还得必须搞清楚究竟是怎么回事。   在boundcheck里面,说是建议用_beginthread代替CreateThread,可能问题就在这里!
    据我所知,前者里面有调用后者,也就是说在_beginthread里面,做了其他一些相应的工作!可能想在缺少的东西就在这里!
      由于_beginthread与Createthread的参数list和返回值不一样,所以现在修改是不太现实的了,所以,现在还是把它该正确为好!!!!
      

  2.   

    _beginthread(ex)与CreateThread的主要不同是对C标准库函数的支持不同,在CreateThread中使用C标准库函数是不安全的(据M$的说法,如果CreateThread线程创建失败,使用C标准库函数会导致少量内存泄漏,但总而言之,不够安全)
    Win32中C++算符new/delete实际上是通过在进程全局堆中分配实现的,如果为安全性考虑,可以用HeapCreate创建局部堆,然后通过HeapAlloc/HeapFree分配,这样如果有某些错误的话(如数组越界)不至于影响到全局堆中的数据。
    我个人觉得的用AfxBeginThread()对C++的语法支持较好,而且它内部调用的是_beginthreadex, 可是他返回的是CWinThread对象的指针,可能对你不太适用。
      

  3.   

    你在new时调用catch捕获一下,看有没有错误,如果有的话,再根据具体原因检查