更新时间:2021-07-08 GMT+08:00
编程实例
实例描述
前提条件:在menuconfig菜单中完成静态内存的配置。
本实例执行以下步骤:
- 初始化一个静态内存池。
- 从静态内存池中申请一块静态内存。
- 在内存块存放一个数据。
- 打印出内存块中的数据。
- 清除内存块中的数据。
- 释放该内存块。
编程实例
VOID Example_StaticMem(VOID)
{
UINT32 *mem = NULL;
UINT32 blkSize = 10;
UINT32 boxSize = 100;
UINT32 boxMem[1000];
UINT32 ret;
ret = LOS_MemboxInit(&boxMem[0], boxSize, blkSize);
if(ret != LOS_OK) {
printf("内存池初始化失败!\n");
return;
} else {
printf("内存池初始化成功!\n");
}
/*申请内存块*/
mem = (UINT32 *)LOS_MemboxAlloc(boxMem);
if (NULL == mem) {
printf("内存分配失败!\n");
return;
}
printf("内存分配成功\n");
/*赋值*/
*mem = 828;
printf("*mem = %d\n", *mem);
/*清除内存内容*/
LOS_MemboxClr(boxMem, mem);
printf("清除内存内容成功\n *mem = %d\n", *mem);
/*释放内存*/
ret = LOS_MemboxFree(boxMem, mem);
if (LOS_OK == ret) {
printf("内存释放成功!\n");
} else {
printf("内存释放失败!\n");
}
return;
}
结果验证
输出结果如下:
内存池初始化成功! 内存分配成功 *mem = 828 清除内存内容成功 *mem = 0 内存释放成功!
完整实例代码
父主题: 静态内存