Как free () знает, сколько памяти нужно освободить? [duplicate]

14
задан Community 23 May 2017 в 10:30
поделиться

1 ответ

Наиболее распространенный способ заключается в том, что некоторая информация сохраняется непосредственно перед адресом, который она вам возвращает. Поэтому, если malloc возвращает адрес 0x1004, внутри malloc отложит память, начатую с 0x0FFC, и сохранит различную информацию, такую ​​как размер где-то в памяти между 0xFFC - 0x1003, но приложению будет сказано, что выделение начинается с 0x1004.

Единственное, что имеет значение для освобождения, - это получение того же адреса, который вернул malloc.

19
ответ дан 1 December 2019 в 13:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: