memset()
c++中的memset()函数是初始化函数,作用是将某一块内存中的全部内容设置为指定的值,通常用来给新申请的内存做初始化工作。 //memset是 memory set 的缩写
#include<string.h>
void *memset(*s, ch, n); //s是内存地址
//ch是指定值,将该段内存的所有数值修改为ch
//n是内存长度
-----------------------------------------------------------------------------------
//数组(字符串同理)
#include<string.h>
int a[10];
memset(a,0,sizeof(a));
-----------------------------------------------------------------------------------
//结构体
#include<string.h>
struct ST
{
char a[10];
int b;
int c;
};
struct ST st;
memset(&st,0,sizeof(struct ST));
函数介绍
void *memset(void *s, int ch, size_t n);
函数解释:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法 。
memset()函数原型是extern void *memset(void *buffer, int c, int count) buffer:为指针或是数组,c:是赋给buffer的值,count:是buffer的长度.
常见错误
第一:memset函数按字节对内存块进行初始化,所以不能用它将int数组初始化为0和-1之外的其 他值(除非该值高字节和低字节相同)。想要初始化其他的值可以用fill()函数。
第二:memset(void *s, int ch,size_t n);中ch实际范围应该在0~~255,因为该函数只能取ch的后八 位赋值给你所输入的范围的每个字节。