也许这是一个简单的问题但我真的很想知道它.
如果我想在内存中的某个特定地址(堆中)存储一个值,比如一个int,我该怎么做?
说,我想将int值10存储在0x16.我想通过调用new或malloc来做到这一点:int*p = new int(10); 然后我想将存储的值的地址设置为0x16.起初我认为像&p = 0x16这样的东西,但这不起作用.我需要这样做以在内存中的某个值前面存储一些附加信息(之前通过malloc或new分配了内存空间).
我正在使用Linux和C++(但C也可以).
我想要实现的是:一个进程调用大小为x的malloc,我想在分配的内存前面存储一个特定的值(大小),所以我可以稍后访问该大小(调用free时).由于调用了malloc,我知道操作系统为该值分配空间的指针,我只想将指定内存的大小存储在指定内存前面的4个字节中.我所做的(在我编写的malloc钩子中)是分配更多内存(通过内部mallok调用)但我还需要能够在特定位置存储此大小值.
我感谢所有的帮助.