memset()函数用法解析
2014-11-15 13:57
337 查看
功能:将一块内存区域按字节初始化为指定的ASCII值
语句:memset(void *s, int ch, unsigned n);
用法:
1.初始化字符数组
char
buffer[] = "Hello world\n";
memset(buffer, '*', strlen(buffer) );
2.初始化整形数组
int array[5] = {1,4,3,5,2};
memset(array,0,5*sizeof(int));
注意:如果这么写
memset(array,1,5*sizeof(int));
输出的结果就是:
16843009 16843009 16843009 16843009 16843009
因为memset是以字节为单位就是对array指向的内存的5个字节进行赋值,每个都用ASCII为1的字符去填充,转为二进制后,1就是 00000001,占一个字节。一个INT元素是4字节,合一起就是00000001000000010000000100000001,就等于16843009,就完 成了对一个INT元素的赋值了。
所以用memset对非字符型数组赋初值是不可取的!
3.初始化结构体
Some x;
memset( &x, 0, sizeof(Some) );
若是结构数组
Some x[10]
memset( x, 0, sizeof(Some)*10 );
语句:memset(void *s, int ch, unsigned n);
用法:
1.初始化字符数组
char
buffer[] = "Hello world\n";
memset(buffer, '*', strlen(buffer) );
2.初始化整形数组
int array[5] = {1,4,3,5,2};
memset(array,0,5*sizeof(int));
注意:如果这么写
memset(array,1,5*sizeof(int));
输出的结果就是:
16843009 16843009 16843009 16843009 16843009
因为memset是以字节为单位就是对array指向的内存的5个字节进行赋值,每个都用ASCII为1的字符去填充,转为二进制后,1就是 00000001,占一个字节。一个INT元素是4字节,合一起就是00000001000000010000000100000001,就等于16843009,就完 成了对一个INT元素的赋值了。
所以用memset对非字符型数组赋初值是不可取的!
3.初始化结构体
Some x;
memset( &x, 0, sizeof(Some) );
若是结构数组
Some x[10]
memset( x, 0, sizeof(Some)*10 );
相关文章推荐
- memset 函数用法
- memset函数详细说明和用法
- 内存初始化函数memset()用法详解
- 解析php session_set_save_handler 函数的用法(mysql)
- 解析php session_set_save_handler 函数的用法(mysql)
- C语言中函数memset(),memcpy()和strchr()的功能和用法
- php加密解密函数authcode的用法详细解析
- sprintf函数用法解析
- “函数的返回类型为引用”用法解析
- C++中函数模板的用法详细解析
- memset()函数用法
- C函数之memset()函数用法
- C函数之memset()函数用法
- memset函数用法
- memset()函数用法
- memset函数用法
- 解析PHP中ob_start()函数的用法
- memcpy strcpy memset 函数用法
- 解析PHP中ob_start()函数的用法