memset使用时得包含在
或者
.
主要用在清空结构体上。
函数原型
void *memset(void *s, int ch, unsigned n)
void *memset(void *s, int c, size_t n);
memset:作用是在一段内存块中填充某个给定的值,它对较大的结构体或数组进行清零操作的一种最快方法
要注意的是,memset是对字节进行操作.
int array[5] = {1,4,3,5,2}; for(int i = 0; i < 5; i++) cout<
因为memset是以字节为单位就是对array指向的内存的4个字节进行赋值,每个都用ASCII为1的字符去填充,转为二进制后,1就是00000001,占一个字节。一个INT元素是4字节,合一起就是000000000000,就等于,就完成了对一个INT元素的赋值了。
memcpy用来做内存拷贝,你可以拿它拷贝任何数据类型的对象,可以指定拷贝的数据长度;例: char a[100], b[50]; memcpy(b, a, sizeof(b)); //注意如用sizeof(a),会造成b的内存地址溢出。 strcpy就只能拷贝字符串了,它遇到’/0’就结束拷贝;
char a[100], b[50]; strcpy(a,b); 如用strcpy(b,a),要注意a中的字符串长度(第一个‘/0’之前)是否超过50位,如超过,则会造成b的内存地址溢出。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/214351.html原文链接:https://javaforall.net
