在删除指针的同时,把指针赋空(NULL),再在funct2中判断是否为空就行了

解决方案 »

  1.   

    最简单的办法是在delete pC1之后将pC1 = NULL;
    在funct2中判断pC是否为NULL!
      

  2.   

    直接在funct2中判断是否为空就行。
      

  3.   

    对不起,可能我没表达好让大家误会了!
    我的意思是pC作为参数传入funct2后,funct2在另一个线程中与funct1同时执行,当funct2执行时可能funct1已将pC delete了。所以即使在funct1中将pC1=NULL,而funct2中的pC2还是等于某个内存地址,造成出错。我觉得需要直接对内存进行判断,我现在是通过长度来判断,觉得不妥当,但不知有没有这类更好的函数?谢谢大家!^_^
      

  4.   

    你可以查看一下MSDN中的AfxIsValidAddress,但我觉得最好是从程序结构上去避免这种做法。如果确实需要这样就要考虑线程间的同步了。
      

  5.   

    to lindongy(东东):
      谢谢!我会试的,不管灵不灵我给你加分先。^_^