中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

Malloc和Free

  • 申请指定字节的内存大小:

    void* HMPP_Malloc(int32_t len);

  • 释放内存:

    void HMPP_Free(void* ptr);

参数

参数名

描述

取值范围

输入/输出

len

字节长度(HMPP_Malloc函数)。

数组长度(HMPPS_Malloc_xxx函数)。

大于0

输入

ptr

要释放内存的地址(Free函数)。

非空

输入

width

HMPPI_Malloc_xxx_kk(kk为C1/C2/C3/C4/AC4,表示通道的情况)将分配的连续内存看成一个width*height的二维矩阵状态,width表示每行的元素个数。

大于0

输入

height

HMPPI_Malloc_xxx_kk中二维矩阵的行数。

大于0

输入

step

HMPPI_Malloc_xxx_kk中会将一行的字节数填充成64的整倍数,并将这个值存在step指定地址中返回。

非空

输出

返回值

HMPP_Malloc函数:

  • 成功:返回申请内存的首地址
  • 失败:返回NULL

错误码

注意

Free函数入参一定是Malloc函数返回值。

示例

#define BUFFER_SIZE 100
void Malloc_Free_Example() {
    void *ptr = HMPP_Malloc(BUFFER_SIZE);
    HMPP_Free(ptr);
    uint8_t *ptrs = HMPPS_Malloc_8u(BUFFER_SIZE);
    HMPPS_Free(ptrs);
    int32_t step;
    uint8_t *ptri = HMPPI_Malloc_8u_C1(BUFFER_SIZE, 4, &step);
    printf("%d\n", step);
    HMPPI_Free(ptri);
}

运行结果:

128