---
title: kpccl_memcpy
description: "内存拷贝，将src位置的内存拷贝到dst位置。"
url: https://www.hikunpeng.com/document/detail/zh/hpchistory/hpckit/develop2400/KunoengHPCKit_developer_050.html
sourcePath: /source/zh/hpchistory/hpckit/develop2400/KunoengHPCKit_developer_050.html
indexId: 374b24fe6f772e2f28161dda97256e2fd0e4ce2b0dc0658e7c66548d3d83efd373
---
# kpccl_memcpy

内存拷贝，将src位置的内存拷贝到dst位置。

#### 接口定义

int kpccl_memcpy(void *dst, const void *src, size_t count);


#### 环境变量

kpccl通过环境变量KPCCL_MEMCPY_MT_ENABLE来控制kpccl_memcpy接口是否开启多线程memcpy能力，该环境变量默认为0表示不开启；当该环境变量设置成1开启多线程memcpy能力后，可以通过配置KPCCL_MEMCPY_MT_THRESHOLD来确认多线程memcpy能力使能的包大小阈值，该阈值默认为512KB；kpccl_memcpy2D接口也采用上述环境变量配置方式使能多线程能力。


#### 参数


**表1 参数定义**

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| dst | void \* | 指向存储复制内容的目标内存位置的指针 | 输入/输出 |
| src | const void \* | 指向要复制的源内存位置的指针 | 输入 |
| count | size\_t | 需要复制的内存大小 | 输入 |


#### 返回值

- 成功：返回KPCCL_OK
- 失败：返回KPCCL_ERROR


#### 示例

```
#include <stdio.h>
#include <stdlib.h>
#include "kpccl.h"
int main()
{
int len = 1024;
char *src = (char *)malloc(len);
char *dest = (char *)malloc(len);
for (int i = 0; i < len / sizeof(char); i++) {
src[i] = i ;
dest[i] = 0;
}
kpccl_memcpy
(dest, src, len);
free(src);
free(dest);
return 0;
}
```

- 上述示例演示了内存拷贝的流程。
- 上述kpccl_memcpy函数将将src数组中的内容复制到dest数组，其中复制的内存大小为len。
