#include<iostream>
#include<string>
using namespace std;
int main()
{
char s[20];
//memset(s,0,sizeof(char)*20);
memcpy(s,"abcdefghi",9);
//strcpy_s(s,"abcdefghi");
cout<<s<<endl;
system("pause");
return 0;
}
可见,未初始化的数组,用memcpy()赋值,会出现乱码:
#include<iostream>
#include<string>
using namespace std;
int main()
{
char s[20];
memset(s,0,sizeof(char)*20);
memcpy(s,"abcdefghi",9);
//strcpy_s(s,"abcdefghi");
cout<<s<<endl;
system("pause");
return 0;
}
可见,同样是用mencpy()赋值,用memset()函数初始化过后,就不会出现乱码:
不过,用strcpy()函数是不会出错的;
此例主要说明,menset()函数用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘/0’;
用menset()函数可以初始化刚申请的内存块
void *memset(void *s,int c,size_t n)
总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。