Я читал о стеке x86 и соглашении CDECL и прочитал кое-что, что меня смутило.
Среди перечисленных обязанностей вызывающей стороны было извлечение параметров, их использование или просто увеличение %esp для их удаления.
Как работает последняя часть?
Например, предположим, что начальное значение %esp равно 0x105000, и вы уменьшаете его на $0x1c для текущего кадра стека. Вы выделяете некоторые данные, а затем увеличиваете их обратно - в этом случае эти данные не будут по-прежнему плавать в памяти? Как очищается память? Приведет ли доступ к 0x104FF4 к ошибке сегментации, и если да, то что там очистило данные?