Может быть, это простой вопрос, но мне бы очень хотелось знать это точно.
Если я хочу сохранить значение, скажем, int, по определенному адресу в памяти (в куче), как мне это сделать?
Скажем, я хочу сохранить значение int 10 в 0x16. Я думаю, сделать это, вызвав new или malloc: int * p = new int (10); а затем я хочу установить адрес сохраненного значения в 0x16. Сначала я думал, что-то вроде & p = 0x16, но это не работает. Мне нужно сделать это, чтобы сохранить некоторую дополнительную информацию перед определенным значением в памяти (которая была ранее назначена памятью с помощью malloc или new).
Я использую Linux и C ++ (но C также будет работать).
То, чего я хочу добиться: один процесс вызывает malloc с размером x, и я хочу сохранить определенное значение (размер) перед выделенной памятью, чтобы я мог получить доступ к размеру позже (когда вызывается free). Так как был вызван malloc, я знаю указатель, где ОС назначил место для значения, и я просто хочу сохранить размер назначенной памяти в 4 байтах перед назначенной памятью. Что я делаю (в написанной мной ловушке malloc), так это выделяю больше памяти (внутренним вызовом mallok), но мне также нужно иметь возможность хранить значение этого размера в определенном месте.
Я благодарен за всю помощь.