自定义内存区域的 c malloc 功能

标签 c memory-management shared-memory gnu mmap

是否有任何类似 malloc/realloc/free 的实现,我可以在其中指定一个内存区域来管理内存分配?

我的意思是常规的 malloc(等)函数只管理堆内存区域。 如果我需要在共享内存段或内存映射文件中分配一些空间怎么办?

最佳答案

不是 100%,根据你的问题,你想维护你自己的内存区域。所以你需要自己的 my_mallocmy_reallocmy_free

Implementing your own my_malloc may help you

void* my_malloc(int size)    
{
    char* ptr = malloc(size+sizeof(int));
    memcpy(ptr, &size, sizeof(int));
    return ptr+sizeof(int); 
}

This is just a small idea, full implementation will take you to the answer.

Refer this question

用同样的方法实现my_reallocmy_free

关于自定义内存区域的 c malloc 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35082100/

相关文章:

c - 访问共享内存段的进程返回不同的值

ruby 中的 char 转换在 C 中是不同的吗?

c - execl 不要离开子进程

c - C 中的 rand() 函数即使在播种时也不是随机的

linux - 如何避免共享内存泄漏

python - 共享内存和多处理

c - GCC 三元条件运算符中的副作用与值计算?

ios - Objective-C 中非综合属性的弱/强注解

mysql - 如何知道 MySQL 何时达到服务器的内存限制?

c++ - ptr_vector 是如何管理内存的?