C之memset、memcpy、strcpy、strncpy区别

1 memset

memset  用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘\0’, memset可以方便的清空一个结构类型的变量或数组。

char a[100];
memset(a, '\0', sizeof(a));

struct student
{
   char  name[16];
   int   age;
};



struct student  student1;
一般情况下,清空student1:
student1.name[0]='\0';
student1.age=0;

memset就非常方便
memset(&student1,0,sizeof(struct student));



如果是数组:
struct student  students[5];
memset(students,0,sizeof(struct student)*5);



2 memcpy

头文件:#include

memcpy() 用来复制内存,其原型为:

void * memcpy ( void * dest, const void * src, size_t num );


memcpy() 会复制 src 所指的内存内容的前 num 个字节到 dest 所指的内存地址上。
memcpy() 并不关心被复制的数据类型,只是逐字节地进行复制,这给函数的使用带来了很大

你可能感兴趣的:(C&C++)