Может быть, это простой вопрос вопрос, но я действительно хотел бы знать это наверняка.
Если я хочу сохранить значение, скажем, 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), но мне также нужно иметь возможность хранить это значение размера в определенном месте.
Я благодарен за всю помощь.