Re: ayuda con función en C

From: Anthony <asotolongo(at)uci(dot)cu>
To: iescriva <iescriva(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: ayuda con función en C
Date: 2011-06-27 21:53:39
Message-ID: 4E08FBE3.5030005@uci.cu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El 27/06/2011 12:00, iescriva escribió:
> El 27/06/11 06:14, Anthony escribió:
>
>> /otrasfunciones.c: In function âfactoâ:
>> otrasfunciones.c:18: warning: passing argument 1 of âfactoâ makes
>> pointer from integer without a cast
>>
> Aquí te esta diciendo el compilador que estas creando un puntero desde
> un entero. Es por la linea: "result = n*facto(n-1);" ya que facto espera
> un vector y n es un entero.
>
>
>> otrasfunciones.c:9: note: expected âFunctionCallInfoâ but argument is of
>> type âintâ/
>>
> Te dice que facto espera un tipo "FunctionCallInfo" pero le estas
> pasando un int.(lo de la linea 18).
>
> La función espera un puntero al vector de argumentos así que al usar el
> entero como un puntero accede fuera de su zona de memoria y por eso te
> cierra el servidor.
>
> no tienes que pasarle n-1 sino un vecto de argumentos del tipo que
> espera facto(supongo que FunctionCallInfo).
>
> Así que necesitarás construir ese vector y utilizarlo en la linea 18.
> No tengo mucha experiencia en postgres usando C, yo crearía una función
> que espere un entero y calcularía el factorial en ella.
>
> int factorial(int n){
> if(n)
> return n*factorial(n-1);
> else
> return 1;
> }
>
> Datum
> facto(PG_FUNCTION_ARGS)
> {
> int32 n = PG_GETARG_INT32(0);
> int32 result;
> result=factorial(n)
> PG_RETURN_INT32(result);
> }
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
> Para cambiar tu suscripci�n:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>

wowwww, esa solución me funciono, separando las funciones , no sabia que
para postgresql se podia hacer funciones así , como en la documentación
solo hablan del uso de las macros esas con el Datum , que bien gracias.
saludos

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Marcos Ortiz 2011-06-28 12:56:12 Re: Connection refused
Previous Message Gilberto Castillo Martínez 2011-06-27 17:08:22 Re: Connection refused