更新时间:2021-07-08 GMT+08:00
编程实例
实例描述
前提条件:在menuconfig菜单中完成动态内存的配置。
本实例执行以下步骤:
- 初始化一个动态内存池。
- 从动态内存池中申请一个内存块。
- 在内存块中存放一个数据。
- 打印出内存块中的数据。
- 释放该内存块。
编程实例
#define TEST_POOL_SIZE (2*1024*1024)
UINT8 g_testPool[TEST_POOL_SIZE];
VOID Example_DynMem(VOID)
{
UINT32 *mem = NULL;
UINT32 ret;
ret = LOS_MemInit(g_testPool, TEST_POOL_SIZE);
if (LOS_OK == ret) {
dprintf("内存池初始化成功!\n");
} else {
dprintf("内存池初始化失败!\n");
return;
}
/*分配内存*/
mem = (UINT32 *)LOS_MemAlloc(g_testPool, 4);
if (NULL == mem) {
dprintf("内存分配失败!\n");
return;
}
dprintf("内存分配成功\n");
/*赋值*/
*mem = 828;
dprintf("*mem = %d\n", *mem);
/*释放内存*/
ret = LOS_MemFree(g_testPool, mem);
if (LOS_OK == ret) {
dprintf("内存释放成功!\n");
} else {
dprintf("内存释放失败!\n");
}
return;
}
结果验证
输出结果如下:
内存池初始化成功! 内存分配成功 *mem = 828 内存释放成功!
完整实例代码
父主题: 动态内存