2015-03-13 55 views
1

有没有办法改变malloc分配内存空间的位置?更改malloc函数分配空间

举一个例子,假设我希望malloc在0x100000和0x500000之内分配内存。我怎么能做到这一点或有没有办法改变这个malloc实现吗?

+0

什么平台?和物理或虚拟地址? – 2015-03-13 07:48:37

+0

即使更改malloc实现仍然不能这样做,也许需要更改系统调用 – 2015-03-13 07:49:15

+0

@RichardCritten虚拟地址空间 – 2015-03-13 08:35:33

回答

0

你可能无法改变标准malloc调用的行为(除了运行换人如通过LD_PRELOAD),但对于某些平台可以编写自己的(独立)内存分配器使用特定的地址与mmap函数调用。

0

使用malloc在堆上分配内存。如果您的问题涉及到嵌入式软件,您可以经常更改启动文件或链接器配置文件中的堆起始地址,大小和其他参数。