你用指针之前都先判断一下指针是否为空不就得了char* str = new char[6000];
if(str != NULL)
  delete str;

解决方案 »

  1.   

    如果不是数组指针的话可以使用 stl 的 auto_ptr 智能指针
    就不用 delete 了 :)
      

  2.   

    哈哈~~~~~~~~~~~~~
    有意思,没指针了我都不知道该怎么办了!
    你使用delete出错可能是你在写该内存块的时候超出了该内存块,
    我就碰到这样的问题,这时你用delete的时候有时不会有问题,但有时要出错,
    主要要看看你冲掉的数据情况看了。最好你检查一下,不过这个很难找的,要有耐心啊!
      

  3.   

    能不用当然不用,new,delete,RTTI这种动态的东西会给你软件的质量有影响,软件小无所谓,大了要维护起来就困难了。
      

  4.   

    VC中最好多用指针,少用实例,你如果不会用指针,最好回去看C算了
      

  5.   

    指针还是有好多好处的,比如在一个对话框的类中,定义CEdit m_Edit变量和CEdit *m_pEdit表面看来都一样,但实际上整个类放在内存中的时候,整个类的大小就存在差别了。
    上面几位大侠提到的其实不能算是指针的不是,更不是VC,C++的不是。指针不会有莫名的错误,存在错误应该当他是种必然性。
    写一个new的同时顺手写个delete是一个好的习惯,当然不要用free,free是与alloc连在一起的。
    提到指针让系统崩溃,我想这太夸张,顶多内存泄露,有时候你的指针想乱点一气还不由你。
    “软件小无所谓,大了要维护起来就困难了”,我们不是有软件工程、模块化设计
    吗?其实从C到C++,程序的效率降低了,但程序设计的效率却高了。
      

  6.   

    楼上说的不错的,其实,学习c,c++指针是很重要的,它对你的程序效率,可读性,有时它给你的不仅仅
    如此,有的地方必须用它,有了它,你想做什么和想得到什么变得随心所欲.
    指针的赋予NULL和delete是你处理指针的关键,例如:你的一个指针传给了几个地方用,那你就知道谁先给NULL和那个是应该delete了吧,
    一定建立起你的内存管理概念,那你就喜欢她(他)了
      

  7.   

    不能用指针,那VC和vb有什么区别?
    并不是指针惹的祸!
      

  8.   

    假如你要讲究程序的稳定和易维护性0,那么建议你用数组(印度的程序大都不用指针)
    假如你要效率和速度,以及灵活,那么用指针,我曾碰到这样一个问题,
    用数组来分配内存,就是有错误,但是用new来分配的话,就可以了
      

  9.   


    char* str = new char[6000];
    if(str != NULL)
    delete []str;
      

  10.   

    我遇到这样一个问题:用VC做DLL驱动,要把数据发消息给应用软件,new之后不能马上delete。
    必须等应用程序处理完毕,才能删除。
    因此,在程序最后统一清除,结果还是有内存泄漏。
    都不知道到哪里去查,该怎么下手。
      

  11.   

    " mbxxx(zhoutong) 你改学VB或DELPH或JAVA好了!"听你的口气,好像delphi没有指针似的!delphi也不比vc差呀!
      

  12.   

    设断点,调试.内存泄漏有很多情况.你先把指针的概念弄清楚.也许是你的内存管理不当造成错误delete指针.
      

  13.   

    new和delete在有时候不是简单的一一对应关系。入口可能比较容易控制,但出口就比较难控制了。特别是有异常处理的话,你会发现new出来的东西的确是比较麻烦的。
      

  14.   


    用!不用白不用。很方便。
    只要合理利用就可以了,呵呵
    TO rushing(勇敢的心) 
    很少用你这种方法,都是要求其他程序给你的程序提供Buffer。
    比如GetWindowText之类,都要求应用程序传递一个有效的Buffer指针。