浅谈C++中memset函数的用法
生活随笔
收集整理的这篇文章主要介绍了
浅谈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函数的用法的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 苹果悬浮球_幽眼进阶:苹果优化+安卓内测
- 下一篇: C/C++编程:右值引用