---
title: 函数：malloc_with_cfg
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/runtimeapi/aclpythondevg_01_1059.html
sourcePath: /source/zh/canncommercial/900/API/runtimeapi/aclpythondevg_01_1059.html
indexId: 881e6cc9615c9526d9c0148c8f35e8dbc35416ff698ad9b78ca2e168c5df780671
---
# 函数：malloc_with_cfg

#### 产品支持情况

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


#### 功能说明

在Device上分配size大小的线性内存，并通过dev_ptr返回已分配内存的指针。

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

使用本接口申请的内存，需要通过acl.rt.free接口释放内存。


#### 函数原型

- C函数原型
  1 aclError aclrtMallocWithCfg(void **devPtr, size_t size, aclrtMemMallocPolicy policy, aclrtMallocConfig *cfg)

- python函数
  1 dev_ptr, ret = acl.rt.malloc_with_cfg(size, policy, cfg)


#### 参数说明

| 参数名 | 说明 |
| --- | --- |
| size | int，申请内存的大小，单位Byte。size不能为0。 |
| policy | int，内存分配规则。 若配置的内存分配规则超出aclrtMemMallocPolicy取值范围，size≥2M时，按大页申请内存，否则按普通页申请内存。 |
| cfg | dict，内存配置信息。不指定配置时，此处可传空字典，具体请参见aclrtMallocConfig。 |


#### 返回值说明

| 返回值 | 说明 |
| --- | --- |
| devPtr | int，指向Device上已分配内存的指针地址。 |
| ret | int，错误码，返回0表示成功，返回其它值表示失败。 |
