C++中memset的用法

最近使用到memset,故在此总结一下相关用法。
遇到的问题如下:如何初始化一个结构体或是数组?

typedef struct {
	unsigned valu1, value2;
} mystruct; //存储两个unsigned数值
typedef struct {
	int size_;
	mystruct mystruct_;
} myarray; // 构造一个类似于数组的类型
// 现在进行初始化
myarray* myarray_ = new myarray;
myarray_.size_ = size;
//构建能容纳size个mystruct的空间
myarray_.mystruct_ = new mystruct[size];

接下来,如何初始化mystruct的内容呢?

memset(&myarray_.mystruct_, 0, sizeof(mystruct)*size);

接下来,我们学习一下memset的详细用法。
函数原型如下:

函数原型: void *memset(void *s , int ch , size_t n );
作用:将s所指向的某一块内存的前n个字节替换成c, 并返回指向内存s 的指针,常用于较大的对结构体和数组的清零操作.;

注意事项:
s可以为数组和结构体;
ch可以为数字,其对应ASCII的数值, 也可以为任意字符’’;
n为长度, 为无符号整型变量;

例如初始化数组:

#include <iostream>
int main() {
	int arr[6];
	memset(arr, 0, sizeof(int)*6);
	//那么此时的arr[10]为000000
	return 0;
}

注意事项:

  1. 对n进行赋值时,最好使用sizeof();
  2. 返回指向s所在内存的指针是为了实现链式编程.
  3. memset是按字节为单位进行初始化的, 对于单字节数据类型char可以随意复制, 对于多字节数据类型则只能赋值为0
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑字。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值