Moko
А вы уверены, что вы вообще правильно поняли, что вам сказал преподаватель?
В первой версии кода направление было принято вполне правильное, надо было только его развить и избавиться от глупостей с указательной арифметикой, например, введя структуру.
Во второй версии от стека уже не осталось ничего кроме названия, а по факту - некое подобие реализации класса vector из STL. Стек должен эффективно расти, а тут каждый раз массивы будут копироваться, если емкость исчерпалась...
Если преподаватель сказал так сделать - он проф. непригоден.
А ошибка ваша в том, что вы не понимаете что такое *p++=a; и *--p;, процедура изменения размера к этом отношения не имеет никакого. Идите читать
http://www.cplusplus.com/doc/tutorial/ , а потом можно будет разговор продолжить.