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

#### 产品支持情况

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


#### 功能说明

申请共享Buffer内存。

使用acltdtAllocBuf接口申请内存后，数据区的长度为size参数的大小，在用户还未填入有效数据前，该内存的有效数据长度初始值为0，可在用户向内存中填入有效数据后，再通过acltdtSetBufDataLen接口设置有效数据长度。

使用acltdtAllocBuf接口申请的内存，需要通过acltdtFreeBuf接口释放内存。


#### 函数原型

```
aclError acltdtAllocBuf(size_t size, uint32_t type, acltdtBuf *buf)
```


#### 参数说明

| 参数名 | 输入/输出 | 说明 |
| --- | --- | --- |
| size | 输入 | 用于指定数据区的内存大小，单位Byte，不能超过4G。 |
| type | 输入 | 共享Buffer内存类型，支持设置如下枚举值。 typedef enum { ACL\_TDT\_NORMAL\_MEM = 0, ACL\_TDT\_DVPP\_MEM } acltdtAllocBufType; 当前仅支持设置ACL\_TDT\_NORMAL\_MEM。 |
| buf | 输出 | 申请成功，输出共享Buffer。类型定义请参见acltdtBuf。 |


#### 返回值说明

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


#### 约束说明

对于 Atlas 200I/500 A2 推理产品 ，仅支持在 Ascend RC 形态下使用该接口。
