Bonjour à tous et merci pour votre aide.
UTF8 est en fait une macro :
#define UTF8(string) g_locale_to_utf8(string, -1, NULL, NULL, NULL)
J'utilise une fonction de la glib pour m'assurer que la chaîne soit encodée correctement : g_local_to_utf8
La fonction doit s'occuper d'allouer la mémoire nécessaire, je pense.
Le tableau entries provient de la fonction g_strsplit_set qui me permet de découper une chaîne en plusieurs chaînes.
Voici le code qui la contient :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
Metadata *metadata;
for(i = 0; i < nbComments; ++i) {
gchar **entries = g_strsplit_set((gchar*)comments[i].entry,"=", -1);
metadata->comments[i].field = malloc(sizeof(char)*strlen(UTF8(entries[0])));
strcpy(metadata->comments[i].field, UTF8(entries[0]));
metadata->comments[i].value = malloc(sizeof(char)*strlen(UTF8(entries[1])));
strcpy(metadata->comments[i].value, UTF8(entries[1]));
g_strfreev(entries);
} |
J'ai également corrigé le code pour allouer la mémoire pour la chaîne convertie en UTF8 via la macro.
Je fais les vérifications de malloc, je ne les ai pas mises dans le code pour alléger le post.
Partager