有没有办法改变malloc分配内存空间的位置?
举一个例子,假设我想要malloc在0x100000和0x500000内分配内存。我怎么能这样做,或者有没有办法解决这个问题而不改变malloc实现?
答案 0 :(得分:0)
您可能无法更改标准malloc
调用的行为(除了运行时替换,例如via LD_PRELOAD),但是对于某些平台,可以使用特定地址编写自己的(单独的)内存分配器mmap函数调用。
答案 1 :(得分:0)
使用malloc在堆上分配内存。如果您的问题与嵌入式软件有关,您通常可以在启动文件或链接器配置文件中更改堆起始地址,大小和其他参数。