动态数组结构体¶
动态数组结构体是 Paddle Inference 为了兼顾效率和安全,创建的一组 C 结构体类型,用来进行上层和底层的数据交互。它的来源分为两种,一种是用户自己创建,这种情况由用户自己负责进行内存的回收。另外一种是来自于 Paddle Inference C api的返回值,这种情况需要用户显式地调用相应的 Destroy 函数进行对象的销毁。
OneDimArrayInt32¶
OneDimArrayInt32 是 int32_t 类型的一维数组,结构体与 API 定义如下:
// OneDimArrayInt32 结构体定义
typedef struct PD_OneDimArrayInt32 {
size_t size; // 数组长度
int32_t* data; // 数组元素指针
} PD_OneDimArrayInt32;
// 销毁由 paddle inferecen C API 返回的 OneDimArrayInt32 对象
// 参数:array - 需要销毁的 OneDimArrayInt32 对象指针
// 返回:None
void PD_OneDimArrayInt32Destroy(PD_OneDimArrayInt32* array);
OneDimArraySize¶
OneDimArraySize 是 size_t 类型的一维数组,结构体与 API 定义如下:
// OneDimArraySize 结构体定义
typedef struct PD_OneDimArraySize {
size_t size; // 数组长度
size_t* data; // 数组元素指针
} PD_OneDimArraySize;
// 销毁由 paddle inferecen C API 返回的 OneDimArraySize 对象
// 参数:array - 需要销毁的 OneDimArraySize 对象指针
// 返回:None
void PD_OneDimArraySizeDestroy(PD_OneDimArraySize* array);
OneDimArrayCstr¶
OneDimArrayCstr 是 const char* 类型的一维数组,结构体与 API 定义如下:
// OneDimArrayCstr 结构体定义
typedef struct PD_OneDimArrayCstr {
size_t size; // 数组长度
char** data; // 数组元素指针
} PD_OneDimArraySize;
// 销毁由 paddle inferecen C API 返回的 OneDimArrayCstr 对象
// 参数:array - 需要销毁的 OneDimArrayCstr 对象指针
// 返回:None
void PD_OneDimArrayCstrDestroy(PD_OneDimArrayCstr* array);
TwoDimArraySize¶
TwoDimArraySize 是 size_t 类型的二维数组,也可以理解为是OneDimArraySize指针
类型的一维数组,结构体与 API 定义如下:
// TwoDimArraySize 结构体定义
typedef struct PD_TwoDimArraySize {
size_t size; // 数组长度
PD_OneDimArraySize** data; // 数组元素指针
} PD_TwoDimArraySize;
// 销毁由 paddle inferecen C API 返回的 TwoDimArraySize 对象
// 参数:array - 需要销毁的 TwoDimArraySize 对象指针
// 返回:None
void PD_TwoDimArraySizeDestroy(PD_TwoDimArraySize* array);