В списке будет сохранено только значение указателя. Если память, на которую указывает указатель, позже будет перезаписана, у вас будут проблемы.
Решением может быть дублирование строки перед ее сохранением:
res = g_list_append(res, g_strdup(nombre));
Это будет хранить указатели на новые строки, хранящиеся в недавно выделенной памяти, отличающиеся для каждой строки. Конечно, вам нужно будет впоследствии это исправить, вызвав g_free()
для каждого из сохраненных указателей, иначе ваша программа утечет память:
g_list_free_full(res, g_free);
Вызывает стандартную функцию <a href="http://developer.gnome.org/glib/stable/glib-Memory-Allocation.html#g-free" rel="nofollow">g_free()</a>
для каждого указателя данных перед освобождением самого списка.