欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > c/c++ >内容正文

c/c++

浅谈C++中memset函数的用法

发布时间:2024/3/26 c/c++ 52 豆豆
生活随笔 收集整理的这篇文章主要介绍了 浅谈C++中memset函数的用法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

浅谈C++中memset函数的用法

 

memset函数的头文件是cstring, 实际上是一个字符串处理函数,但常用于给静态数组(不是new出来的数组)赋特定初值。

#include<cstring>

C++ Reference关于memset函数的链接页:memset - C++ Reference

在使用的时候有2点需要特别注意:

1. value虽然是以int(32 bit)类型给的,但最终是转化为了unsigned char(8 bit)

所以,可以赋的最大初值是memset(a,0x3f, sizeof(a)),相当于赋了1061109567,

memset(a, 0xff, sizeof(a))相当于赋-1,memset(a, 0, sizeof(a))相当于赋0,而想要赋初值1是没法实现的

memset(a,0x3f,sizeof(a)); // 1061109567,1061109567,1061109567,1061109567,1061109567 memset(a, 1, sizeof(a)); // 16843009,16843009,16843009,16843009,16843009

 

2. 动态开辟(new)出来的数组的头指针(p)经过sizeof运算后得到只是头指针的大小而不是整个数组的大小,所以动态开辟的数组不能用memset赋初值,如果要赋初值0的话,直接new的时候后面添一个()就行了。

 

int* p = new int[5](); // 0,0,0,0,0 memset(p, 1, sizeof(p)); // 16843009,0,0,0,0 delete[] p;

 

 

 

总结

以上是生活随笔为你收集整理的浅谈C++中memset函数的用法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。