为什么使用循环复制:
for (int i = 0; i < size; i++) {
dst[i] = src[i];
}
不等于:
memcpy(dst, src, size);
在DST和SRC之间存在重叠?
memcpy()
不能安全处理重叠的内存:memcpy(dst, src, size); // Can corrupt data if src and dst overlap
for (int i = 0; i < size; i++) {
dst[i] = src[i]; // Safe even with overlap
}
为了安全的重叠处理,请使用
memmove()
而不是::
memcpy()