Buenas, he hecho el siguiente programa, pero no se como pasarle el vector fibonnaci por referencia para que funcione correctamente...
#include <stdio.h>
void crearFibonnaci(int *fibonnaci){
fibonnaci[0]=1;
fibonnaci[1]=1;
int i=2;
while(i!=10){
fibonnaci=fibonnaci[i-1]+fibonnaci[i-2];
i++;
}
}
void sumarFibonnaci(int *suma, int *fibonnaci){
int i=0;
while(i!=10){
*suma+=fibonnaci;
i++;
}
}
main(){
int fibonnaci[10];
int suma=0;
switch(fork()){
case -1:
printf("Error\n");
exit(1);
case 0:
crearFibonnaci(fibonnaci);
break;
default:
wait();
sumarFibonnaci(&suma,fibonnaci);
printf("Suma de Fibonnaci: %i\n",suma);
break;
}
}
Gracias por vuestra ayuda.
case 0:
[b] crearFibonnaci(&fibonnaci);[/b]
break;
Nop :(
Sigue sin funcionar :(
Los vectores siempre se pasan por referencia, aquí tienes un error:
fibonnaci=fibonnaci[i-1]+fibonnaci[i-2];
Porque se supone que fibonnaci apunta a tu vector y tu estas cambiando a donde apunta fibonnaci.
Y como deberia ponerlo??
Lo siento, pero soy bastante novato en programacion en c :-X
veo muchos errores :P creo que es solo demostracion :P para usar arrays como parametros con como punteros de hecho se comportan casi como punteros por que apuntan a los elementos, tenes que hacerlo asi:
declaracion:
int main(){
int fibonnaci[10];
...
FUNCION(fibonnaci)
}
LA FUNCION:
FUNCION(int fibonnaci[10])
{
...
}
si es de varias dimenciones entonces tenes que especificar en el parametro de la funcion tambien, si es redimencionable
entonces usa un puntero y el parametro de la funcion debe ser un puntero :)