Язык Си в примерах/Калькулятор выражений в обратной польской нотации: различия между версиями

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

правка