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

我的程序在下面,要在hd1,hd2,hd3中我要把DATA[64]中的字节全部清除,查到貌似要用memoset,不过还是不会啊,我有3个结构体structhd{unsig... 我的程序在下面,要在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;
展开
 我来答
泪之梦幻
2015-08-19 · TA获得超过2211个赞
知道小有建树答主
回答量:304
采纳率:100%
帮助的人:57.3万
展开全部
#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:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法
zhccsd
2014-11-25 · TA获得超过4042个赞
知道大有可为答主
回答量:1347
采纳率:66%
帮助的人:918万
展开全部
#include <memory.h>
memset( hd1.Data , 0 , 64 );
memset( hd2.Data , 0 , 64 );
memset( hd3.Data , 0 , 64 );
memset参数1是要清零的内存起始位置,参数2是用什么数去填充(0只是其中一种情况),参数3表示填充个数
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式