Bonjour a tous

Je comprends pas le resultat que me donne cette fonction:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
g_strv_length ()
 
guint               g_strv_length                       (gchar **str_array);
 
Returns the length of the given NULL-terminated string array str_array.
 
str_array : 	a NULL-terminated array of strings.
Returns : 	length of str_array.
 
Since 2.6
Lorsque je declare le tableau de chaines de caracteres comme si dessous, g_strv_length me retourne "9"
Si par contre je lui demande de calculer la longueur sur une chaine de caractere, elle me retourne "3"

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
    gchar *Tab[]={"Bonjour","comment","ca","va","?"};
    sStatusText=g_strdup_printf("Bonjour comment ca va ?");
 
    printf("Length Tab:%i\n",g_strv_length(Tab));
    printf("Length string:%i\n",g_strv_length(&sStatusText));
 
    g_free(sStatusText);
    sStatusText=NULL;
Comment cela se fait il?

Peut etre que je n'utilise pas la bonne fonction ...

En fait j'aimerais une fonction qui me retourne le nombre de caracteres contenus dans une chaine ('\0' compris ou non), afin d'utiliser:

gtk_text_buffer_get_iter_at_line_offset(GtkTextBuffer *buffer, GtkTextIter *iter, gint line_number, gint char_offset);

Qui me permettra, une fois la chaine inserée dans le GtkTextBuffer, d'avoir un GtkTextIter marquant le dernier mot du buffer.


Merci d avance