где malloc() и free() сохраняют выделенные адреса и их размеры (Linux GCC)? Я читал, что некоторые реализации хранят их где-то до фактической выделенной памяти, но я не мог подтвердить это в своих тестах.
Фон, может быть, у кого-то есть еще один совет для этого: Я немного экспериментирую с анализом памяти кучи процесса, чтобы определить текущее значение строки в другом процессе. Доступ к памяти кучи процесса и прохождение через нее не представляет проблемы. Однако, поскольку значение строки изменяется, и процесс каждый раз выделяет новую часть памяти, изменяется адрес строки. Поскольку строка имеет фиксированный формат, ее все еще легко найти, но после нескольких изменений старые версии строки все еще находятся в кучевой памяти (вероятно, освобождены, но все еще не используются повторно), и поэтому я не могу сказать какая строка является текущей.
Итак, чтобы все еще найти текущий, я хочу проверить, используется ли строка, которую я нахожу в памяти, путем сравнения ее адреса с адресами malloc/free know about.
чао, Эльмар