Ciao, capisco che tu abbia iniziato da poco, ma con un po' di furbizia avresti potuto, non dico risolvere, ma almeno isolare il problema.
Cosa intendo?
Intendo che questo codice funziona
# include <stdio.h>
# include <stdlib.h>
int f1(int a, int b) {
return f1(20, 10);
}
int f2(int a) {
int return_value;
return_value = a * a;
return return_value;
}
int main(void) {
{
printf("%d", f2(3));
}
return EXIT_SUCCESS;
}
e questo no
# include <stdio.h>
# include <stdlib.h>
int f1(int a, int b) {
return f1(20, 10);
}
int f2(int a) {
int return_value;
return_value = a * a;
return return_value;
}
int main(void) {
{
printf("%d", f1(1, 2));
}
return EXIT_SUCCESS;
}
Da cui si evince che il problema è la funzione F1().
A questo punto non dovrebbe essere molto difficile ragionare su una funzione costituita da un'unica e semplice riga di codice.
Indizi:
- sai cosa significa passaggio di parametri per copia?
- quante volte viene richiamata ricorsivamente la funzione F1()?
- la memoria del PC è infinita?