From 44ec4d12336e290ad8d1f6e1559e04bf19e79075 Mon Sep 17 00:00:00 2001 From: HombreLaser Date: Thu, 28 Apr 2022 16:09:20 -0500 Subject: Corregido error de memoria --- main.cpp | 11 ++++++++--- parser.cpp | 3 ++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/main.cpp b/main.cpp index 9328b1e..0c20f99 100644 --- a/main.cpp +++ b/main.cpp @@ -2,6 +2,7 @@ * FACULTAD DE CIENCIAS FÍSICO MATEMÁTICAS * Luis Sebastián Martínez Vega - LCC */ +#include #include #include #include @@ -16,19 +17,20 @@ using std::string, std::cin, std::cout, std::getline, std::vector, std::begin, std::end, std::endl; -int main(){ +int main() { int counter = 1; string input; Parser parser; - Expression *tree, *simplified, *diff; + Expression *tree = NULL, *simplified = NULL, *diff = NULL; cout << ">> "; while(getline(cin, input)) { try { tree = parser.parse(input); } catch(const ParserException &e) { - cout << e.showMsg(); + cout << e.showMsg() << "\n"; cout << ">> "; + tree = NULL; continue; } @@ -40,6 +42,9 @@ int main(){ delete tree; delete simplified; delete diff; + tree = NULL; + simplified = NULL; + diff = NULL; ++counter; } diff --git a/parser.cpp b/parser.cpp index 98f6e2c..9c47555 100644 --- a/parser.cpp +++ b/parser.cpp @@ -10,7 +10,8 @@ using std::string, std::stoi; void Parser::panic() { for(auto ptr = tree_queue.begin(); ptr != tree_queue.end(); ++ptr) delete *ptr; - + + tree_queue.clear(); throw ParserException("Sintaxis incorrecta."); } -- cgit v1.2.3