memcpy引起的一个bug

 void *memcpy(void *dest, const void *src, size_t n);

由src指向地址为起始地址的连续n个字节的数据复制到以dest指向地址为起始地址的空间内。

memcpy(dest,0,5);

真正应该使用的是

memset(dest,0,5);

关于memset: memset()函数把从开始地址为dest,长度为n的内存区域内的每个字节都设置为c的值,注意c是个单字节的字符。

转:对于变量

  struct sample_strcut stTest;

  一般情况下,清空stTest的方法:

  stTest.csName[0]='\0';

  stTest.iSeq=0;

  stTest.iType=0;

  用memset就非常方便:

  memset(&stTest,0,sizeof(struct sample_struct));

  如果是数组:

  struct sample_struct TEST[10];

  则

  memset(TEST,0,sizeof(struct sample_struct)*10);

  另外:

  如果结构体中有数组的话还是需要对数组单独进行初始化处理的。


 

猜你喜欢

转载自blog.csdn.net/goalcn/article/details/6979566