Язык Си в примерах/Калькулятор выражений в обратной польской нотации: различия между версиями
Содержимое удалено Содержимое добавлено
Greck (обсуждение | вклад) мНет описания правки |
Greck (обсуждение | вклад) Нет описания правки |
||
Строка 161:
В данной программе в некоторой степени реализована «защита от дурака», а именно, если вводится выражение, в котором число операций превосходит число
помещенных в стек элементов (например <tt>1 2 + *</tt>), то программа не допустить уменьшиния переменной <tt>sp</tt> до отрицательных значений, а выдаст предупреждение «Невозможно выполнить POP для пустого стека».</tt>.
=== Выделение стека в отдельную структуру ===
Кроме защиты от дурака-пользователя необходима еще защита от дурака-программиста, который возьмет ваш код, решит его использовать и дорабатывать.
Строка 172 ⟶ 175 :
В итоге получаем следующующую, «более правильную» реализацию стека:
#include <malloc.h>
|