memmove
是一个标准库函数,用于 C++ 中的内存操作。它主要用于在内存中移动或复制字节。
memmove
函数的原型如下:
void* memmove (void* dest, const void* src, size_t num);
这里的参数意义如下:
dest
是目标内存区的指针。src
是源内存区的指针。num
是要复制的字节的数量。
memmove
函数会将src
所指向的num
字节的内容拷贝到dest
所指向的内存区域。不同于memcpy
,memmove
可以处理源内存区和目标内存区重叠的情况。如果源内存区和目标内存区重叠,memmove
仍然可以正确地复制字节,而memcpy
可能无法正确复制。
此函数会返回指向目标内存区的指针。
这里有一个memmove
函数的使用例子:
#include <stdio.h>
#include <string.h>
int main () {
char str[] = "hello world!";
memmove(str+6, str, strlen(str)+1);
puts (str);
return 0;
}
在这个例子中,字符串"hello world!"被移动,使得输出为 “hello hello world!”.