se tu intendi che non c'è un freno al puntatore iter, ti ricordo che l'array "radici" del main che passo alla funzione cambiandogli nome e chiamandola "riso" è di 20 massimo cellette di memoria. siccome un'equazione con un'incognita che arrivi ad elevarsi fino alla ventesima non l'ho mai vista anche se è possibile, è poco probabile, quindi non c'è rischio che il pc trovi più di venti risultati
C'è poco da ricordare agli altri e molto da studiare... Cosa succede se cerchi di accedere al trentesimo elemento di un array di 20 items?

Prova ad aggiungere un cout << iter << endl; prima della riga ris[iter]=i; per vedere dopo quante iterazioni si verifica il buffer overflow.