您的位置:首页 > 其它

memcpy memset memmove 区别(部分转载)

2014-11-11 11:11 316 查看
memset就是初始化用的
memcpy和memmove()是复制用的。
原型如下:
函数解释:将s中前n个字节(typedefunsignedintsize_t)用ch替换并返回s。

memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法
memcpy和memmove

函数解释:从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中
memmove在copy两个有重叠区域的内存时可以保证copy的正确,而memcopy就不行了,但memcopy比memmove的速度要快一些,


[code]1.void*mymemmove(void*dest,constvoid*src,size_tn)

2.{

3.chartemp
;

4.inti;

5.char*d=dest;

6.constchar*s=src;

7.

8.for(i=0;i<n;i++)

9.temp[i]=s[i];

10.for(i=0;i<n;i++)

11.d[i]=temp[i];

12.

13.returndest;

14.}

1.void*mymemcpy(void*dest,constvoid*src,size_tn)

2.{

3.char*d=dest;

4.constchar*s=src;

5.int*di;

6.constint*si;

7.intr=n%4;

8.

9.while(r--)

10.*d++=*s++;

11.di=(int*)d;

12.si=(constint*)s;

13.n/=4;

14.while(n--)

15.*di++=*si++;

16.

17.returndest;

18.}
[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: