John
Lucas Brasilino wrote:
#include <stdio.h> #include <string.h> #include <glib.h>
int main(int argc, char **argv) {
GList *dlist = NULL, *list = NULL; guint length,i; struct { guint index; gchar *data; } *record;
I'd do
typedef struct _Record { int index; char *data; } Record;
Record *rp;
record->data = g_malloc(strlen("Lucas")+1);Lucas" g_strlcpy(record->data,"Lucas",strlen("Lucas")+1); dlist = g_list_append(dlist, record);
here do:
rp = g_new( Record, 1 ); rp->index = 0; rp->date = g_strdup( "Lucas" ); dlist = g_list_append( dlist, rp );
record->data = g_malloc(strlen("Brasilino")+1); g_strlcpy(record->data,"Brasilino", strlen("Brasilino")+1); dlist = g_list_append(dlist, record);
same here
length = g_list_length(dlist);
g_printf("%d \n",length);
record = NULL;g_list_first(dlist) list = g_list_first(dlist); while(list) { record = list->data; g_print("%s\n",record->data); list = list->next;
And change these to:
rp = (Record *) list->data; printf( "index = %d, name = \"%s\"\n", rp->index, rp->data ); list = list->next;
You could change the loop to:
for( list = g_list_first( dlist ); list; list = list->next ) { rp = (Record *) list->data; printf( "index = %d, name = \"%s\"\n", rp->index, rp->data ); }
which is slightly easier to read
} }
================