[C con Clase] Glib

Steven Davidson srd4121 en njit.edu
Mar Ene 5 13:22:20 CET 2010


Hola Omar,

2010/1/5 omar mendoza <omar.p9 en gmail.com>

> Hola a todos espero ser claro, y de antemano gracias. Pues tengo el sig
> código
>
>  #include <glib.h>
> #include <glib/gprintf.h>
>
> int
> main (int argc, char *argv[])
> {
> gchar *prueba="Hola Mundo Glib!!";
>  gchar *alreves;
> alreves = g_strreverse(prueba);
>  g_printf("%s\n", prueba);
> g_printf("Alreves %s\n", alreves);
>
> return 0;
> }
>
> y me sale el error de "Fallo de segmentacion"
>
> la funcion que falla es la g_strreverse(), ya que al comentarla sale el
> mensaje, sé que el programa es un clásico hola mundo, pero quiero a empezar
> a utilizar esta libreria
> como cultura general, jeje, la definicion de la función es la sig:
>
> gchar* g_strreverse(gchar *cadena)
>
>
>

El problema es que estás pasando un puntero a una cadena literal y por tanto
constante. Escribes,

gchar *prueba = "Hola Mundo Glib!!";

Crea un array de caracteres estática o dinámicamente. Por ejemplo,

gchar prueba[] = "Hola Mundo Glib!!";

gchar *alreves = g_strreverse( prueba );

La función 'g_strreverse()' modifica el contenido de la cadena, pero como
pasaste una cadena literal, el programa acaba lanzándote un mensaje de
error.


Espero que esto te ayude.

Steven
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100105/594bbc51/attachment.html>


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