memset( &Address, 0, sizeof(Address));
经常看到这样的用法,其实不用的话,
分配数据的时候,剩余的空间也会置零的。请教。
经常看到这样的用法,其实不用的话,
分配数据的时候,剩余的空间也会置零的。请教。
解决方案 »
- 关于网络流量和抓包的一些问题?
- xp多桌面状态,如何捕获非当前桌面屏幕
- 如何布局
- 关于vActiveX中vEdit框中的光标不能移动的问题
- 关于SOURCE INSIGHT如何使用啊!!
- 在VC中如何把我的字符串编码成UTF-8格式,多谢了???
- 请教各位朋友,如何动态的添加、删除CSplitterWnd的pane,如何动态的用不同的视替换一个pane的视?
- 如何自定义消息啊???能给些代码解释一下么?
- 关于postmessage/sendmessage发送消息
- 现在要用VC++编一个直接在摄像头视频图像上框选出所看到物件的程序,高了好久,没编出来,急,请高手帮帮忙,谢谢啦
- 没分了,也想请教高手怎样对字符串进行排序?
- 请教高手,两个不同的VC++的界面程序如何快速合并?
CString str,str1;// memset(buf,0,sizeof(buf));
for(int i = 0;i<5;i++)
{
str.Format("%d ",buf[i]);
str1 +=str ;
} TRACE("%s\r\n",str1);
分配数据的时候,剩余的空间也会置零的。请教。
-------------------------------------------------------------------------------
其实不然!特别是对于字符指针类型的,剩余的部分通常是不会为0的,不妨作一个试验,定义一个字符数组,并输入一串字符,如果不用memset实现清零,使用MessageBox显示出来就会有乱码(0表示NULL,如果有,就默认字符结束,不会输出后面的乱码)
经常看到这样的用法,其实不用的话,
分配数据的时候,剩余的空间也会置零的。
--------------------
在VB,delphi等下面是这样的。不过C++是没有缺省值的。
你试试下面这段代码在Debug build和Release build下有何不同的动作:HANDLE hEvent;
WaitForSingleObject(hEvent, INFINITE);
memset(audiosendbuf, 0, 2576);
这样写,是正确的。char *audiosendbuf=new char[2576];
memset(audiosendbuf, 0, 2576);这样写,编译是报错的。。 应该怎么改?不改定义,因为这个定义改了的话,程序里其他的地方,都得改 :(
thanks...
char a[100];
memset(a,0,sizeof(a));
//这样写,是正确的。
char* b = new char[100];
memset(b,0,100);
没问题
memset(audiosendbuf, 0, 2576);
这样写,是正确的。char *audiosendbuf=new char[2576];
memset(audiosendbuf, 0, 2576);这样写,编译是报错的。。 应该怎么改?不改定义,因为这个定义改了的话,程序里其他的地方,都得改 :(
thanks...---------------------------------------------------------------------------
编译应该不会出错吧,但是运行的是有可能申请不到内存,最好判断一下