From 415032e0ef0076a349ba2ca54702478507cd45cd Mon Sep 17 00:00:00 2001 From: Eric Teunis de Boone Date: Tue, 30 Jun 2020 11:18:10 +0200 Subject: [PATCH] Ex3.3 feedback: The Stack's bufsize was not updated on Stack::grow() so the stack would not actually grow --- ex3.2/Stack.cc | 11 ++++++++--- ex3.2/main.cpp | 6 +++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/ex3.2/Stack.cc b/ex3.2/Stack.cc index 71dda3f..71a1c92 100644 --- a/ex3.2/Stack.cc +++ b/ex3.2/Stack.cc @@ -4,8 +4,6 @@ void Stack::push(double c) { if (full()) { - std::cout << "Stack::push() Error: stack is full" << std::endl ; - grow( DELTA ); } s[count++] = c ; @@ -34,7 +32,10 @@ void Stack::init( int in_size ) { } void Stack::grow( int delta ) { std::cout << "Growing by " << delta << std::endl; - double* newbuf = new double[ bufsize + delta ]; + + int newbufsize = bufsize + delta; + + double* newbuf = new double[ newbufsize ]; // Copy elements for ( int i=0; i < count ; i++ ) @@ -47,4 +48,8 @@ void Stack::grow( int delta ) { // Assign pointer s = newbuf; + + // Update bufsize + bufsize = newbufsize; + } diff --git a/ex3.2/main.cpp b/ex3.2/main.cpp index 0f2840c..6a41b03 100644 --- a/ex3.2/main.cpp +++ b/ex3.2/main.cpp @@ -7,7 +7,7 @@ using namespace std ; int main() { - Stack s(10) ;// initialize Stack + Stack s(5) ;// initialize Stack // Write doubles into Stack int i ; @@ -17,7 +17,7 @@ int main() { } // Count doubles in fifo - cout << s.nitems() << " value in stack" << endl ; + cout << s.nitems() << " values in Stack" << endl ; cout << "Inspect the FIFO" << endl; s.inspect(); @@ -26,7 +26,7 @@ int main() { // Read doubles back from fifo while (!s.empty()) { double val = s.pop() ; - cout << "popping value " << val << " from stack" << endl ; + cout << "popping value " << val << " from Stack" << endl ; } cout << "Inspect the FIFO" << endl;