[C con Clase] puntero a una funcion

Jorge Medina jorge en bsdchile.cl
Lun Dic 29 02:34:14 CET 2008


2008/12/27 Yan <gdotta en telefonica.net>:
> Hola Jorge:
>
> A primera vista en la función no veo nada raro, salvo que la memoria para buf la reservas cada vez que llamas a la función y luego no la liberas. Podrías usar realloc().
>
> La traza no la entiendo muy bien ya que no sé si corresponde a una única ejecución de la función o a varias. Me parece que en el breakpoint 3
>
> JM> Breakpoint 3, mdb_sql (cfgsql=0x8014288c5
> JM> "gelatos.cl/istegmaier/Maildir", val=0x39 <Error reading address 0x39:
> JM> Bad address>) at src/util.c:51
> JM> 51          buf = (char *)malloc(len);
>
> val es un puntero con valor no permitido: sería por tanto algo erróneo que ha llegado a la llamada a la función.
>
> Por otro lado, y en ese mismo breakpoint, el texto enviado con cfgsql, no contiene un %s, por lo que la función snprintf recibiría un parámetro más de los que espera, produciendo problemas en la pila.
>
> Como comentario general, hacer una concatenación de 2 strings (si es lo que se pretende) empleando snprintf() y el primero de ellos como string formato, obliga a que este primero termine con %s. Si esto no fuese así, por lo que fuera, y no tuviese el %s o tuviere más de uno u otras secuencias con %, produciría errores difíciles de controlar. Sería más seguro simplemente encadenar las dos cadenas con strncat(), previa comprobación de longitudes.

el problema es que se me corrompia la memoria en otra rutina y la
funcion no retornaba la direccion absoluta al troso de memoria en el
heap tonces la referencia era invalidad pero ya esta corredido
midificando algo el codigo pero encontre una utilidad para buscar
memory leaks que me sera de utilidad para corregir lo errores que se
me pasaron en el codigo.

> Hasta otra,
> Yan.
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>



-- 
Jorge Andrés Medina Oliva.




Más información sobre la lista de distribución Cconclase