#include <stdio.h>
#include <stdlib.h>
int f1 (int *A, int n, int i);
int main(){
int n = 4,a = 1;
int i = 1;
f1(&a,n,i);
printf("LISTO");
}
int f1 (int *A, int n, int i)
{
if (i == n)
return 0;
else
{
return f1(A, n, i++);
}
}
Me da el siguiente error de compilación [Error] invalid conversion from 'int' to 'int*' [-fpermissive], no entiendo cual puede ser el problema :huh:, gracias.
***SOLUCIONADO***
Era debido a que se realizarían infinitas llamadas recursivas puesto que no es correcto asignar los sucesores con un postincremento (i++), se solucionaría simplemente cambiando dicho incremento por (i+1) o (++i).
Un Saludo!.
el problema esta en que tu función recibe un puntero
int f1 (int *A, int n, int i);
con lo cual le tienes que enviar una dirección para que al recibirla el putero apunte a esa dirección f1(&a,n,i);
como lo haces aquí pero en esta return f1(A, n, i++);
estas tratando de enviar un puntero, en vez de enviar la dirección a la cual apunta tu puntero envíalo de esta forma return f1(*(&A), n, i++);