C++ освобождает память "_alloca" из стека

Я знаю, что поведение _alloca заключается в освобождении памяти из стека, когда вы покидаете функцию. Есть ли способ освободить память раньше?

2 ответа

Нету. Там нет смысла в использовании _alloca в любом случае - вы можете написать высокоскоростной распределитель памяти пула, который может выделять и освобождать быстрее из кучи и с меньшими ограничениями по размеру.

Нет там нет (исключая возиться со стеком явно, например, в asm блок) но вы можете использовать _malloca а также _freea, если вам нужно что-то подобное.

РЕДАКТИРОВАТЬ: как отмечает BoBTFish: If it was allocated on the stack, _freea does nothing поэтому этот ответ неверен по отношению к освобождению памяти ранее. Тем не менее, я думаю, что лучше не удалять его, поскольку это указывает на альтернативу _alloca что несколько безопаснее.

Другие вопросы по тегам