内存堆初始化
使用堆内存,必须先初始化堆。
void rt_system_heap_init(void* begin_addr, void* end_addr);begin_addr:堆内存区域起始地址
end_addr:堆内存区域结束地址
使用 memheap 堆内存:
rt_err_t rt_memheap_init(struct rt_memheap *memheap,
const char *name,
void *start_addr,
rt_uint32_t size)内存堆管理
分配内存
void *rt_malloc(rt_size_t nbytes);示例:
int *pi;
pi = rt_malloc(100);
if(pi == NULL)
{
rt_kprintf("malloc failed\r\n");
}重分配内存
在已分配内存块的基础上重新分配内存块的大小,增加或缩小,内存数据保持不变,缩小时后面的数据被截断。
void *rt_realloc(void *rmem, rt_size_t newsize);释放内存
void rt_free (void *ptr);