这段代码会内存泄露吗?

chenliankun 2007-03-31 01:28:10
int* p;

Class k
{
int* w;
char l[200];
void k()
{
w=p;
memset(l,0,200);
}
}

delete k实例的指针,会不会内存泄露。
...全文
266 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
chq_zml 2007-03-31
  • 打赏
  • 举报
回复
这个应该是你的线程没有结束导致的吧?
neil_cn 2007-03-31
  • 打赏
  • 举报
回复
socket 也是占资源的,thread也是
不过还是先问一下你程序跑在什么操作系统上?
theLibra12 2007-03-31
  • 打赏
  • 举报
回复
你要在类K的析构函数中释放memset(l,0,200);分配的空间
Alan S1 2007-03-31
  • 打赏
  • 举报
回复
no,分配在内存中的静态区和堆中才会内存泄露
勉励前行 2007-03-31
  • 打赏
  • 举报
回复
void k() 構造函數不是這樣寫的吧
lb_hit 2007-03-31
  • 打赏
  • 举报
回复
不会
chenliankun 2007-03-31
  • 打赏
  • 举报
回复
这只是个大概的程序状况,构造函数是不对。
我怎么看都不应该有内存泄露,char l[200]应该在类销毁时自动销毁,int* w的内存并不是类自己分配的,所以不用也不能去销毁它。
但我建了一个socket类,数据成员与此相似,大概过程是 程序开始开个线程listen,然后select,检测可读就accept,随即delete,delete里面closesocket。
写个vb脚本:
set hh=createobject("wscript.shell")
for p=0 to 100
hh.shell "telnet ip port"
next
set hh=nothing
会发现内存上去了,再也下不来。
真搞不明白。
artcpp 2007-03-31
  • 打赏
  • 举报
回复
不会。没有new,根本没分配内存。
kdck00125 2007-03-31
  • 打赏
  • 举报
回复
p 很危险啊, k对象的构造函数不是这么写的吧,没有定义对象,却用了delete,画蛇添足啊.
zhb1190 2007-03-31
  • 打赏
  • 举报
回复
有可能
因为没有new
但是最后用了delete
我上次就是这个原因内存泄漏
micnoone 2007-03-31
  • 打赏
  • 举报
回复
heheh
coldplay968 2007-03-31
  • 打赏
  • 举报
回复
delete 要和 new 配对使用啊
imzdh 2007-03-31
  • 打赏
  • 举报
回复
危险的指针啊 ,p都没有初始化
HF_99 2007-03-31
  • 打赏
  • 举报
回复
不会

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧