Стек и куча два разных разных способа организации памяти.
И если тебе часто требуется переменная в конце стека, то оптимальнее тогда размещать переменные в куче, т.к. не надо постоянно дёргать указатель стека туда-сюда.
Ну и оперция push или pop выполняется быстрее чем считать переменную и занкрементить указатель (*i++).