c++ memcpy的用法
时间: 2023-07-24 08:25:00 浏览: 49
C++ 中的 memcpy() 函数用于将一段内存中的数据复制到另一段内存中。其函数原型为:
```c++
void* memcpy(void* destination, const void* source, std::size_t num);
```
函数参数解释如下:
- `destination`:目标内存地址,即将要复制到的内存地址。
- `source`:源内存地址,即将要复制的内存地址。
- `num`:要复制的字节数。
函数返回值为目标内存地址 destination。
memcpy() 函数在使用时需要注意以下几点:
1. 目标内存和源内存不能重叠,否则会导致复制后的数据出错。
2. 复制的字节数 num 不能超出目标内存和源内存的有效范围,否则会导致访问越界。
3. 如果目标内存和源内存的类型不同,需要进行类型转换。
下面是一个使用 memcpy() 函数将字符串复制到字符数组的示例代码:
```c++
#include <cstring>
#include <iostream>
int main() {
const char* str = "hello world";
char buffer[20] = {0};
std::size_t len = std::strlen(str);
std::memcpy(buffer, str, len);
std::cout << buffer << std::endl;
return 0;
}
```
输出结果为:
```
hello world
```
在上面的代码中,我们先定义了一个字符串 str 和一个字符数组 buffer,然后使用 std::strlen() 函数获取字符串 str 的长度,再使用 memcpy() 函数将字符串 str 复制到 buffer 数组中,最后输出 buffer 数组的内容。
阅读全文