memcpy vs memmove
		
		memcpy 和 memmove 都可用于复制一段内存。
它们之间的区别很简单:
memmove更安全:当源内存块和目标内存块存在重叠区域时,memcpy的行为是未定义的。它可能崩溃或产生错误数据。而且在debug 和 release 模式下的表现各不相同。memcpy更快。
这是两种不同编程思想的实现。一种更注重安全, 一种更注重效率。
下面是两个方法可能的实现方式.
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30  | 
						void memmove(void *dest, void *src, size_t n)  {     // Typecast src and dest addresses to (char *)     char *csrc = (char *)src;     char *cdest = (char *)dest;     // Create a temporary array to hold data of src     char *temp = new char[n];     // Copy data from csrc[] to temp[]     for (int i=0; i<n; i++)         temp[i] = csrc[i];     // Copy data from temp[] to cdest[]     for (int i=0; i<n; i++)         cdest[i] = temp[i];     delete [] temp;  } void memcpy(void *dest, void *src, size_t n)  {     // Typecast src and dest addresses to (char *)     char *csrc = (char *)src;     char *cdest = (char *)dest;     // Copy contents of src[] to dest[]     for (int i=0; i<n; i++)         cdest[i] = csrc[i];  }  | 
					
在编程的时候,应该更多地考虑使用 memmove 而不是 memcpy