char *p;
p = new char[255];怎样释放 new 空间呢?

解决方案 »

  1.   

    delete []p;是最规范的
    delete p;也可以最好删除后赋空
      

  2.   

    delete []p; or delete p; 都会出错,在MFC中(可能)无需用delete释放内存,MFC会自动帮助完成(不确定)。
      

  3.   

    wongsung()不要误导大家!但是,最好再释放之前先判断一下!!!
      

  4.   

    wongsung() ( ) 
    ________________________________
    你的说法是不对的,这是C++的基本与法,VC使用的是C++的规则
      

  5.   

    delete p;也可以
    ---------------------------------
    这样可要犯错误底,看看EFFECTIVE C++有解释的标准做法
    delete []p;
    p = NULL;
      

  6.   

    在释放这种简单类型的指针的时候,我认为delete p也是可以的
      

  7.   

    char *ptrA = new char [6];
    lstrcpy(ptrA,"");
    ...
    delete []ptrA;//(vc6,mfc)单步调试至此,程序报错
                  //若用free(ptrA),反而无错
                  //奇怪
      

  8.   

    wongsung
    我试过,没问题,是你中途改过指针值,或者越界
      

  9.   


    我也说说吧,delete []p是指p申请的指向的是数组内存,delete p是指p申请的是指向的是一块内存空间(一个变量或者类等),建议你先释放指针再用delete []p,如果不释放会造成内存溢出或者指向的地址随机错误,见Designed C++(C++创始人著)