Как я могу сохранить значение в определенном месте в памяти?

Может быть, это простой вопрос, но я действительно хотел бы знать его наверняка.

Если я хочу сохранить значение, скажем int, по определенному адресу в памяти ( в куче), как мне это сделать?

Скажем, я хочу сохранить значение int 10 в 0x16. Я предполагаю сделать это, вызвав new или malloc: int * p = new int (10); а затем я хочу установить адрес сохраненного значения на 0x16. Сначала я подумал что-то вроде & p = 0x16, но это не работает. Мне нужно сделать это, чтобы сохранить некоторую дополнительную информацию перед определенным значением в памяти (которое ранее было назначено пространством памяти с помощью malloc или new).

Я использую Linux и C ++ (но C тоже будет работать).

Я хочу добиться: один процесс вызывает malloc с размером x, и я хочу сохранить определенное значение (размер) перед выделенная память, поэтому я могу получить доступ к размеру позже (когда будет вызвана бесплатная). Поскольку был вызван malloc, я знаю указатель, в котором ОС выделяла пространство для значения, и я просто хочу сохранить размер назначенной памяти в 4 байтах перед назначенной памятью. Что я делаю (в написанном мною хуке malloc) - это выделяю больше памяти (внутренним вызовом mallok), но мне также нужно иметь возможность хранить это значение размера в определенном месте.

Я благодарен за любую помощь .

9
задан Bree 12 July 2011 в 08:23
поделиться