c语言如何将结构体清零?

我的程序在下面,要在hd1,hd2,hd3中我要把DATA[64]中的字节全部清除,查到貌似要用memoset,不过还是不会啊,我有3个结构体
struct hd
{
unsigned char IDSTART[13];
unsigned char IDSYNC[1];
unsigned char TRACKNUMBER[2];
unsigned char SECTORNUMBER[1];
unsigned char DATASTART[13];
unsigned char DATASYNC[1];
unsigned char DATA[64];
unsigned char ERC[2];
}hd1,hd2,hd3;

#include <memory.h>
memset( hd1.Data , 0 , 64 );
memset( hd2.Data , 0 , 64 );
memset( hd3.Data , 0 , 64 );
memset参数1是要清零的内存起始位置,参数2是用什么数去填充(0只是其中一种情况),参数3表示填充个数

memset是计算机中C/C++语言函数。将s所指向的某一块内存中的前n个 字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向s的指针。

void *memset(void *s, int ch, size_t n);
函数解释:将s中前n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。
memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-25
#include <memory.h>
memset( hd1.Data , 0 , 64 );
memset( hd2.Data , 0 , 64 );
memset( hd3.Data , 0 , 64 );
memset参数1是要清零的内存起始位置,参数2是用什么数去填充(0只是其中一种情况),参数3表示填充个数本回答被提问者和网友采纳
相似回答