你用指针之前都先判断一下指针是否为空不就得了char* str = new char[6000];
if(str != NULL)
delete str;
if(str != NULL)
delete str;
解决方案 »
- 远程桌面共享怎么做(求思路)
- DLL中Release版本是unicode码吗?
- 在MFC对话框中查询MySql数据库中多表的字段,怎么显示在list control控件中
- [疑问]从未使用过的新U盘在插入后
- 如何捕获一个对话框程序的内部消息
- 为什么我在我的工程中添加一个新类程序就会出现 LNK2001错误,实在不知道为什么!
- 请问如何用NDIS实现包过滤功能?
- 各位高手 解密出错, 请求帮忙
- Beep
- 属性页自动切换请高手指导!
- 为什么Debug的时候,按F11也没法进入MFC代码中去呢?以前可以的。(不帮我就去自杀)
- 既然CALLBACK WINAPI最终变成_stdcall windows为什么还要产生诸如APIENTERY等这么多一样的参数类型。
就不用 delete 了 :)
有意思,没指针了我都不知道该怎么办了!
你使用delete出错可能是你在写该内存块的时候超出了该内存块,
我就碰到这样的问题,这时你用delete的时候有时不会有问题,但有时要出错,
主要要看看你冲掉的数据情况看了。最好你检查一下,不过这个很难找的,要有耐心啊!
上面几位大侠提到的其实不能算是指针的不是,更不是VC,C++的不是。指针不会有莫名的错误,存在错误应该当他是种必然性。
写一个new的同时顺手写个delete是一个好的习惯,当然不要用free,free是与alloc连在一起的。
提到指针让系统崩溃,我想这太夸张,顶多内存泄露,有时候你的指针想乱点一气还不由你。
“软件小无所谓,大了要维护起来就困难了”,我们不是有软件工程、模块化设计
吗?其实从C到C++,程序的效率降低了,但程序设计的效率却高了。
如此,有的地方必须用它,有了它,你想做什么和想得到什么变得随心所欲.
指针的赋予NULL和delete是你处理指针的关键,例如:你的一个指针传给了几个地方用,那你就知道谁先给NULL和那个是应该delete了吧,
一定建立起你的内存管理概念,那你就喜欢她(他)了
并不是指针惹的祸!
假如你要效率和速度,以及灵活,那么用指针,我曾碰到这样一个问题,
用数组来分配内存,就是有错误,但是用new来分配的话,就可以了
char* str = new char[6000];
if(str != NULL)
delete []str;
必须等应用程序处理完毕,才能删除。
因此,在程序最后统一清除,结果还是有内存泄漏。
都不知道到哪里去查,该怎么下手。
用!不用白不用。很方便。
只要合理利用就可以了,呵呵
TO rushing(勇敢的心)
很少用你这种方法,都是要求其他程序给你的程序提供Buffer。
比如GetWindowText之类,都要求应用程序传递一个有效的Buffer指针。