【发布时间】:2016-05-07 01:05:18
【问题描述】:
是否有任何类似 malloc/realloc/free 的实现,我可以指定一个内存区域来管理内存分配?
我的意思是常规 malloc(等)函数只管理堆内存区域。 如果我需要在共享内存段或内存映射文件中分配一些空间怎么办?
【问题讨论】:
-
“在共享内存段或内存映射文件中分配一些空间”是什么意思?您想使用
malloc()或类似函数来执行此操作吗? -
我认为您正在尝试做一些不会像您期望的那样工作的事情。共享内存区域通常映射到不同的地址,因此使用指向它们的指针是很棘手的。
-
是的,我需要像 malloc/realloc/free 一样的功能,但是像这样:cust_malloc(struct* mem_region, size_t length) 等等。我知道 malloc 实现比 fir 看起来更复杂,它管理“格式化”堆内存,启动内核的 brk 调用(以获得更多内存或缩小)并处理并发内存分配。
-
我想用来共享(或存储)没有指针但有计数数据的数据结构,如 wecbam 捕获的图像、PCM 样本、长字符串,它基本上是一个包含一些数据和 (线性)数组。
标签: c memory-management shared-memory gnu mmap