From 7d7b67f7f2bfc1d6fb5fe8f51e88d1e199593d27 Mon Sep 17 00:00:00 2001 From: nplk84 Date: Mon, 16 Oct 2023 11:56:38 +0200 Subject: [PATCH] Stack overflow errors get detected correctly --- njvm.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/njvm.c b/njvm.c index 0fb1964..da44212 100644 --- a/njvm.c +++ b/njvm.c @@ -20,11 +20,13 @@ unsigned int programmSpeicher[1000]; // Stack -unsigned int stack[1000]; +#define maxValues 1000 + +unsigned int stack[maxValues]; unsigned int current = 0; void stackPush(unsigned int value) { - if (current > 100) { + if (current > (maxValues-1)) { fprintf(stderr, "stack overflow\n"); exit(EXIT_FAILURE); } @@ -37,7 +39,7 @@ unsigned int stackPop(void) { fprintf(stderr, "stack underflow\n"); exit(EXIT_FAILURE); } - return --current; + return stack[--current]; } void version(void) {