$darkmode
RuiChing API 参考手册
V0.9.1
内存管理

提供动态内存分配接口 更多...

函数

void * rt_malloc (rt_size_t size)
 动态分配内存块 更多...
 
void rt_free (void *ptr)
 释放动态内存 更多...
 
void * rt_realloc (void *ptr, rt_size_t newsize)
 调整已分配内存块大小 更多...
 
void * rt_calloc (rt_size_t count, rt_size_t size)
 分配并清零内存块 更多...
 
void * rt_malloc_align (rt_size_t size, rt_size_t align)
 分配地址对齐的内存块 更多...
 
void rt_free_align (void *ptr)
 释放对齐内存块 更多...
 

详细描述

提供动态内存分配接口

函数说明

◆ rt_malloc()

void* rt_malloc ( rt_size_t  size)

动态分配内存块

从系统堆中分配指定大小的内存块

参数
[in]size请求分配内存的字节大小
返回值
RT_NULL内存不足或参数无效
!RT_NULL分配成功,指向内存块地址的指针
警告

◆ rt_free()

void rt_free ( void *  ptr)

释放动态内存

用户线程使用完从内存分配器中申请的内存后,必须及时调用该函数释放,否则会 造成内存泄漏,系统会把待释放的内存还回给堆管理器中

参数
[in]ptr要释放的内存块指针
警告

◆ rt_realloc()

void* rt_realloc ( void *  ptr,
rt_size_t  newsize 
)

调整已分配内存块大小

本函数将在已分配内存块的基础上重新分配内存块的大小,在进行重新分配内存块时, 原来的内存块数据保持不变(缩小的情况下,后面的数据被自动截断)

参数
[in]ptr原始内存块的指针
[in]newsize新的内存字节大小
返回值
RT_NULL内存不足或参数无效
!RT_NULL调整成功,指向内存块地址的指针
警告

◆ rt_calloc()

void* rt_calloc ( rt_size_t  count,
rt_size_t  size 
)

分配并清零内存块

本函数分配足够存储 count 个 size 大小对象的连续内存,并初始化为 0

参数
[in]count对象数量
[in]size每个对象的字节大小
返回值
RT_NULL内存不足或参数无效
!RT_NULL分配成功,内容已清零,指向内存块地址的指针
警告
注解
  • 所有分配的内存块都被初始化成零

◆ rt_malloc_align()

void* rt_malloc_align ( rt_size_t  size,
rt_size_t  align 
)

分配地址对齐的内存块

本函数分配内存块并确保返回地址按指定对齐方式对齐

参数
[in]size请求分配的内存字节大小
[in]align对齐字节数
返回值
RT_NULL内存不足或参数无效
!RT_NULL分配成功,返回分配的内存块地址
警告
  • 对齐参数必须满是 2 的幂次且 ≥ sizeof(void *)
  • 释放内存必须使用 rt_free_align(),不能使用 rt_free() 函数

◆ rt_free_align()

void rt_free_align ( void *  ptr)

释放对齐内存块

本函数将释放由 rt_malloc_align() 函数分配的并且地址对齐的内存块

参数
[in]ptr将要释放的内存块指针
警告