Salve, mnemonicamente mi sono fatto lo schema dello stack per questo esercizio, e non risco a capire perchè non funziona!!

Si tratta di verificare con una bool ricorsiva se un array è ordinato in ordine crescente.

codice:
#include <iostream>
#include <cstdlib>



using namespace std;

bool m(int, int);

bool verifica(int a[],int n)
{ if (n==1)  return true;


 if(a[n]>a[n-1])
 return verifica(a,n--);

 else return false;

    }


int main()
{
int n=5;

int aa[]={4,5,6,7,8};

if(verifica(aa,n)) cout<<"si è ordinato "<<'\n';


return 0;
}
non ci sono errori ma mi va in crash!

l'idea mia è che se l'array ha dimensione 1 è ordianto, poi gli passo sempre lo stesso array, e verifico ogni volta se l'elemento successivo è maggiore del precedente.
Ovviamnte scalo n, fino alla via di guga