LPSTR buffer = new char[20];
memset(buffer, 0, 20);
buffer = "hello!";
delete buffer;当我去掉末尾的delete语句就可以正常运行,为什么?
memset(buffer, 0, 20);
buffer = "hello!";
delete buffer;当我去掉末尾的delete语句就可以正常运行,为什么?
解决方案 »
- 如何解决【无法定位程序输入点 _except_handler4_common 于动态链接库 msvcrt.dll 上】问题?
- 想知道:线程执行的频率变快了?
- 又是无法解析外部符号
- 这样的窗口是如何创建的?
- 在用IHTMLDocument2解析HTML时如何阻止IE 内核自动下载网络元素?
- 谁能对比一下C++和Java的嵌套类有什么不同?
- 我刚刚学VC/C++,请指教!!
- 提了好几天的问题谁呢解决?有关CFormView中CtabCtrl的使用,我想份已经不重要了,看看搞VC的人到底怎么样
- 关于文件夹创建问题:API高手进
- 急急急!!如何用VC实现远程访问?
- 数据查询
- 急求关于 netmeeting 开发的小程序源码! 网上下的例子看不懂 急用!!!! 500分求一个程序(在 网络编程 中)
memset(buffer, 0, 20);
strcpy(buffer,"hello!");if(buffer)
delete buffer;
memset(buffer, 0, 20);
strcpy(buffer,"hello");
MessageBox(buffer);
delete buffer;不要直接 用=,要strcpy,copy到缓冲区
delete buffer;此时buffer指向的是一段局部内存,里面就是hello!,而不再指向new的内在,只要不是动态分配的内存都不能使用delete去释放它,退出程序作用域后自然释放。另外注意:你上面的程序造成了内存泄漏!一但一指针指向了在堆中分配的内存,在翻译内存前千万不要另指向别处,否则内存泄漏。
LPSTR buffer;
buffer = "hello!";