---
title: aclrtMallocWithCfg
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/runtimeapi/aclcppdevg_03_1796.html
sourcePath: /source/zh/canncommercial/900/API/runtimeapi/aclcppdevg_03_1796.html
indexId: 17686993276745481c34b71a6ffd11e46824093d4c27c4f536d9b02cf8be193e68
---
# aclrtMallocWithCfg

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | √ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | √ |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |


#### 功能说明

在Device上分配size大小的线性内存，并通过*devPtr返回已分配内存的指针，且内存首地址64字节对齐。

与aclrtMalloc接口相比，本接口在申请内存时，还可以指定内存相关的配置信息。

使用本接口申请的内存，需要通过aclrtFree接口或aclrtFreeWithDevSync接口释放内存。


#### 函数原型

```
aclError aclrtMallocWithCfg(void **devPtr, size_t size, aclrtMemMallocPolicy policy, aclrtMallocConfig *cfg)
```


#### 参数说明

| 参数名 | 输入/输出 | 说明 |
| --- | --- | --- |
| devPtr | 输出 | “Device上已分配内存的指针”的指针。 |
| size | 输入 | 申请内存的大小，单位Byte。 size不能为0。 |
| policy | 输入 | 内存分配规则。类型定义请参见aclrtMemMallocPolicy。 若配置的内存分配规则超出aclrtMemMallocPolicy取值范围，size≥2M时，按大页申请内存，否则按普通页申请内存。 |
| cfg | 输入 | 内存配置信息。类型定义请参见aclrtMallocConfig。 不指定配置时，此处可传NULL。 |


#### 返回值说明

返回0表示成功，返回其他值表示失败，请参见aclError。
