
# 编程实例
#### 实例描述
前提条件：在menuconfig菜单中完成动态内存的配置。
本实例执行以下步骤：
1. 初始化一个动态内存池。
2. 从动态内存池中申请一个内存块。
3. 在内存块中存放一个数据。
4. 打印出内存块中的数据。
5. 释放该内存块。
#### 编程实例
```
#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
内存释放成功!
```
#### 完整实例代码
[sample_mem.c](https://support.huaweicloud.com/kernelmanual-LiteOS/resource/sample_mem.c)
