有没有办法改变malloc分配内存空间的位置?更改malloc函数分配空间
举一个例子,假设我希望malloc在0x100000和0x500000之内分配内存。我怎么能做到这一点或有没有办法改变这个malloc实现吗?
有没有办法改变malloc分配内存空间的位置?更改malloc函数分配空间
举一个例子,假设我希望malloc在0x100000和0x500000之内分配内存。我怎么能做到这一点或有没有办法改变这个malloc实现吗?
你可能无法改变标准malloc
调用的行为(除了运行换人如通过LD_PRELOAD),但对于某些平台可以编写自己的(独立)内存分配器使用特定的地址与mmap函数调用。
使用malloc在堆上分配内存。如果您的问题涉及到嵌入式软件,您可以经常更改启动文件或链接器配置文件中的堆起始地址,大小和其他参数。
什么平台?和物理或虚拟地址? – 2015-03-13 07:48:37
即使更改malloc实现仍然不能这样做,也许需要更改系统调用 – 2015-03-13 07:49:15
@RichardCritten虚拟地址空间 – 2015-03-13 08:35:33