关于new和delete的简单问题 ( 积分: 100 )

  • 主题发起人 主题发起人 truest9
  • 开始时间 开始时间
T

truest9

Unregistered / Unconfirmed
GUEST, unregistred user!
定义
char *buffer;
buffer=new char[MsgSize];
这里对buffer做了一些操作,如strchr、memmove等
释放
memset(&buffer, 0, sizeof(buffer));
//如果没有这一句,下面一句会出错。
delete []buffer;

但是VC调试显示在buffer=new char[MsgSize];这一行上有内存泄露。
不知道为什么???(delete []buffer;
肯定被调用了)
 
定义
char *buffer;
buffer=new char[MsgSize];
这里对buffer做了一些操作,如strchr、memmove等
释放
memset(&buffer, 0, sizeof(buffer));
//如果没有这一句,下面一句会出错。
delete []buffer;

但是VC调试显示在buffer=new char[MsgSize];这一行上有内存泄露。
不知道为什么???(delete []buffer;
肯定被调用了)
 
[:D]在线等待高手帮忙
 
定义了char *buffer后,不要改变buffer指针的指向,如果要赋值,
不要用buffer="asdfasdf";
用strcpy(buffer,"12345678");
等等。
memset(&buffer, 0, sizeof(buffer));
sizeof(buffer)是四个字节,上面一句把buffer前四个字节变为0,后面的内存就泄漏了.
 
接受答案了.
 
后退
顶部