elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Error llamada recursiva Puntero C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error llamada recursiva Puntero C  (Leído 1,601 veces)
aisak77

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Error llamada recursiva Puntero C
« en: 30 Enero 2017, 09:19 am »

#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.


En línea

aisak77

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Error llamada recursiva Puntero C
« Respuesta #1 en: 30 Enero 2017, 10:49 am »

***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!.


En línea

Kenji-chan

Desconectado Desconectado

Mensajes: 104


Ver Perfil
Re: Error llamada recursiva Puntero C
« Respuesta #2 en: 30 Enero 2017, 13:44 pm »

el problema esta en que tu función recibe un puntero
Código:
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
Código:
f1(&a,n,i);
como lo haces aquí pero en esta
Código:
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
Código:
return f1(*(&A), n, i++);
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error en llamada a metodo
Java
m@o_614 4 3,039 Último mensaje 14 Mayo 2012, 01:03 am
por [Case]
[SOLUCIONADO] C++ - Error con memoria dinámica: ¿Puntero por referencia?
Programación C/C++
xaps 7 5,566 Último mensaje 22 Noviembre 2013, 17:16 pm
por lapras
puntero, funcion recursiva y segmentation fault
Programación C/C++
evilraziel 4 2,589 Último mensaje 3 Abril 2014, 02:13 am
por amchacon
Por que me da error? ( declarar api y realizar llamada )
Programación C/C++
70N1 4 2,680 Último mensaje 21 Diciembre 2014, 14:03 pm
por 70N1
Error cargando una estructura con puntero?
Programación C/C++
palacio29 2 1,528 Último mensaje 28 Abril 2019, 05:33 am
por palacio29
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines