delete by yourself in c++msg pack = new msg; //compile error
解决方案 »
- 获取系统图标慢
- 虽然是个小问题,但是困难死啦,那位大神来帮忙看一下,SDK编程
- activemovie控件中设置播放速率的问题
- Cstring内容的提取,有类似于strtok的函数吗
- 求vc輸出文本日志(log)的例子
- 一个小忙,大家帮上一下,谢谢!
- Help: 在Win2000下使用正常的com组件,在win2003 server使用不正常。???
- 在北京招VC兼职,用于开发图形组件,用Oracle数据库
- 有谁知道关于socket编程方面的网站?请告诉小弟
- VS2010+ACCESS通过ODBC连接,查询数据库出提示检索记录出错...麻烦看下代码有哪些错误,菜鸟
- 一个菜鸟的问题:
- 哪有关于VC6调试的文章?或者告诉我如何得到程序运行中的变量值?
1.
msg Pack pack;
或
2.
msg pack = new Pack;
对于1,不需delete;
2则要delete:
if (pack != NULL)
delete pack;
msg Pack pack;
或
msg pack = new Pack;
然后:
if (pack != NULL)
{
delete pack;
pack = NULL;
}
加上delete Pack; 会出错
if (pack != NULL)
{
delete pack;
pack = NULL;
}
new 的返回一定是赋给一个指针变量的,你这样写,等于在堆上创建一个对象,然后将这个对象赋给一个栈上的局部变量,然后对堆上的那个对象的引用就丢了。每执行一次这段代码,就有一小块内存泄漏。
那怎么样做才会防止内存泄漏呢??
我的目的不是想删掉列表中的数据,是想收回我手工分配的内存
我觉得每执行一次OnReceive都会分配一小点内存,如果时间长了,后果不知道会怎么样?请会一下各位怎么样解决??大家都发表一点宝贵的意见
那我这段程序应该在那delete 呢?
你所说的析构函数是哪个,请指教?