Previous topicNext topic
Help > XEngine_BaseLib > XEngine_BaseLib > BaseLib_Memory >
BaseLib_Memory_Malloc

函数

BaseLib_Memory_Malloc

功能

三级指针内存申请

语法

BOOL BaseLib_Memory_Malloc(VOID * **pppszPoint, size_t nCount, size_t nSize)

参数

 参数.一:pppszPoint
  In/Out:Out
  类型:三级指针
  可空:N
  意思:输出申请好的内存,内存会被初始化为0
 参数.二:nCount
  In/Out:In
  类型:整数型
  可空:N
  意思:输入列表个数
 参数.三:nSize
  In/Out:In
  类型:整数型
  可空:N
  意思:输入元素大小

返回值

类型:逻辑型
意思:是否成功

备注

用来处理一些特殊导出参数和输入参数.可作为list的代替

示例

int test_Memory()
{
    int** ppIntArray;
    if (!BaseLib_OperatorMemory_Malloc((void***)&ppIntArray, 3, sizeof(int)))
    {
        return -1;
    }
    for (int i = 0; i < 3; i++)
    {
        *(ppIntArray[i]) = i;
    }
    for (int i = 0; i < 3; i++)
    {
        printf("%d\n", *(ppIntArray[i]));
    }
    BaseLib_OperatorMemory_Free((void***)&ppIntArray, 3);

    CHAR** ppszStr;
    if (!BaseLib_OperatorMemory_Malloc((void***)&ppszStr, 3, 6))
    {
        return -1;
    }
    for (int i = 0; i < 3; i++)
    {
        strcpy(ppszStr[i], "hello");
    }
    for (int i = 0; i < 3; i++)
    {
        printf("%s\n", ppszStr[i]);
    }
    BaseLib_OperatorMemory_Free((void***)&ppszStr, 3);

    typedef struct
    {
        int a;
        int b;
    }XENGINE_MEMORY;
    XENGINE_MEMORY** ppSt_Memory;
    BaseLib_OperatorMemory_Malloc((XPPPMEM)&ppSt_Memory, 3, sizeof(XENGINE_MEMORY));
    for (int i = 0; i < 3; i++)
    {
        ppSt_Memory[i]->a = 1;
        ppSt_Memory[i]->b = i;
    }
    for (int i = 0; i < 3; i++)
    {
        printf("%d %d\n", ppSt_Memory[i]->a, ppSt_Memory[i]->b);
    }
    BaseLib_OperatorMemory_Free((void***)&ppSt_Memory, 3);
    return 0;
}