Ci sono alcune cose inutili come
size2 non raggiungerà mai valori minori di 1 in quella funzione, tra l'altro "minimo" non è inizializzata ad alcun valore in quel punto del codice.codice:if (size2<1) return minimo;
Così dovrebbe andare senza istruzioni superflue
codice:int min(int *array, int n) { int min_val; if (n == 1) { return *array; } return (min_val = min(array, n - 1)) < array[n - 1] ? min_val : array[n - 1]; }