为什么 不考虑用 信号量 或者 互斥对象之类东西 作同步?
加个布尔变量 也行啊~
第一次删就 置 false

解决方案 »

  1.   

    您为什么来创建一个全局指针变量?您删除后,应该给指针赋NULL,还有我想您应该给您自己定义的结构中添加构造函数,构造函数中应该有ppt=NULL,还有就您所给的代码中没有对临界区进行互斥(同步)
      

  2.   

    多线程一个很重要的原则就是,对象谁创建的就谁负责删除,非要全局共享一个对象的话,那么这个对象就应该被销毁以后指针立即设置成NULL
    比如某个buffer:
    定义:
    char *buffer = NULL;
    CRITICAL_SECTION csbuffer;
    InitializeCriticalSection(&csbuffer);创建:
    EnterCriticalSection(&csbuffer);
    if (NULL == buffer)
    buffer = new char[1024];
    LeaveCriticalSection(&csbuffer);销毁:
    EnterCriticalSection(&csbuffer);
    if (NULL != buffer)
    {
    delete[] buffer;
    buffer = NULL;
    }
    LeaveCriticalSection(&csbuffer);-------------------------------------------------------
    广告:VC/WinAPI 网络/多线程讨论 QQ群, 群号:41356711