Ciao c:
Ho trovato due errori:
Bool is_empty(void)
{
if (top == 0) {
return true;
} //Else?
}
Questa funzione ritorna SEMPRE true perché non è mai specificato un altro return.
La versione corretta, semplicemente, è
Bool is_empty(void)
{
if (top == 0) {
return true;
}
return false;
}
Stessa cosa per il secondo errore:
Bool is_full(void)
{
if (top == (STACK_SIZE - 1)) {
return true;
} //Else?
}
Anche qui basta aggiungere il "return false;":
Bool is_full(void)
{
if (top == (STACK_SIZE - 1)) {
return true;
}
return false;
}
Di fatto ci eri arrivato, fai solo attenzione a questi errori che, per quanto piccoli, come vedi sballano totalmente i risultati :/