memcpy()和memmove()函数之间区别
2013-02-18 14:54
381 查看
void* memcpy(void* dest,void* source,unsigned count);
memcpy是把source 指向的对象中的n个字符拷贝到dest所指向的对象中,返回指向结果对象的指针。
void* memmove(void* dest,void* source,unsigned count);移动一块字节
memmove也是把source 指向的对象中的n个字符拷贝到destin所指向的对象中,但过程就好象是先把source所指向的对象拷贝到临时数组中,然后在从临时数组拷贝到destin所指的对象中,返回指向结果对象的指针。
这两个函数都是从source所指向的数组中拷贝count个字符到dest指向的数组中去。如果这两个数组重叠,memmove可以正确地拷贝到dest中去,而memcpy则执行非法。
但要注意,除memmove之外的字符串操作函数在拷贝同一个字符串中的字符时,其结果是不确定的。也就是说,memmove可以把自己的一部分拷贝给自己的另一部分。其他函数不行,比如memcpy.
memcpy是把source 指向的对象中的n个字符拷贝到dest所指向的对象中,返回指向结果对象的指针。
void* memmove(void* dest,void* source,unsigned count);移动一块字节
memmove也是把source 指向的对象中的n个字符拷贝到destin所指向的对象中,但过程就好象是先把source所指向的对象拷贝到临时数组中,然后在从临时数组拷贝到destin所指的对象中,返回指向结果对象的指针。
这两个函数都是从source所指向的数组中拷贝count个字符到dest指向的数组中去。如果这两个数组重叠,memmove可以正确地拷贝到dest中去,而memcpy则执行非法。
但要注意,除memmove之外的字符串操作函数在拷贝同一个字符串中的字符时,其结果是不确定的。也就是说,memmove可以把自己的一部分拷贝给自己的另一部分。其他函数不行,比如memcpy.
相关文章推荐
- strcpy,memcpy,memmove函数之间的区别及源码
- strcpy和memcpy,memmove函数的区别
- linux内核中memcpy和memmove函数的区别和实现
- linux内核中memcpy和memmove函数的区别和实现
- 关于memcpy和memmove两函数的区别
- linux内核中memcpy和memmove函数的区别和实现
- memcpy和memmove函数的区别和实现
- memcpy,memmove函数实现及区别
- 完成字符串拷贝(sprintf、strcpy 及 memcpy 函数)函数之间的区别
- 模拟实现memcpy、memmove函数以及二者的区别
- memcpy与memmove函数的区别
- 关于memcpy和memmove两函数的区别
- Linux内核中memcpy和memmove函数的区别和实现
- linux内核中memcpy和memmove函数的区别和实现
- setTimeout和setInterval的一些区别(浏览器之间参数的差别,函数本身的一些差别)(1)
- memmove 和 memcpy的区别
- [置顶] 浅谈javascript之事件、函数、方法、对象 各代表何含义,通俗解释及其之间的关联与区别
- 【C/C++学习笔记】memmove()、memcpy()、memccpy()、strcpy()函数整理
- MFC中处理消息的几个函数之间的区别
- sprintf、strcpy 及 memcpy 函数的区别