memset赋值问题
来源:互联网 发布:jetbrains python 编辑:程序博客网 时间:2024/06/10 07:43
http://www.cnblogs.com/caidaxia/archive/2011/11/21/2257241.html
关于memset的用法,
常用于对于较大的结构体或数组进行清零操作//注意,是清零操作,如果进行统一赋值,要谨慎。
void *memset( void *dest, intc, size_t count );
函数将dest所指向的内存块全部以字节为单位,用c进行填充,函数第三个参数指定内存块的大小。
char
a[20];
memset
(a,0,
sizeof
(a));
上述代码将a中的字符全部以0填充。
对于清零初始化,一般不用出现错误使用,但是在一些统一赋初值的运算中,就有可能会出现下述错误情况。
int
a[5];
memset
(a,1,
sizeof
(a));
//这里改成memset(a,1,5 *sizeof(int))也是不可以的
for
(
int
i = 0;i < 5;i++)
cout<<a[i]<<
" "
;
a中所有元素的值将为16843009。
这是因为,memset是以字节为单位以指定值对内存填充,由于int型在一般机器上都占4为,因此每个整型被填充的值为0x01010101即为十进制的16843009
结论:使用memset对整型等进行赋值时要考虑清楚,注意memset的填充原理。
当然,memset在用于对char型以指定字符填充的运算中很难出现这些问题,因为char本来就只占一个字节。
- memset赋值问题
- memset函数赋值问题
- 关于memset赋值的问题
- memset 赋值
- memset赋值
- memset 赋值
- memset 赋值
- 关于memset给整形数组赋值的问题
- 关于memset赋值无穷大无穷小
- memset 按字节赋值注意事项
- memset是对字节赋值
- 字符数组赋值,以及memset用法注意
- 使用 memset() 统一赋值 memcpry() 数组整体赋值
- memset效率问题
- memset的问题
- memset的效率问题
- memset的问题
- memset的效率问题
- AGPS定位Android简单实现
- android 代码混淆
- vim
- 用SSH登陆linux很慢的解决
- ZZL字符串匹配算法
- memset赋值问题
- tcp/ip详解卷1:协议 读书笔记 ARP:地址解析协议
- 【强档推荐】应用工具下载
- java IO
- C++中的NULL和nullptr
- 博客声明
- SNMP
- linux navicat for mysql 安装
- 【教你如何在Win7上安装lls】