typedef struct {
char name[10];
} A;
A * inst = get_instance_of_A();
char *str = g_strdup (inst->name);
La dernière ligne ne se compile pas. J'ai également essayé & (inst-> name) sans aucune chance. L'erreur que je reçois est:g_strduping un élément membre d'un tableau char
Erreur: char n'est pas un type de structure.
Je comprends que char [] et char * sont des types différents. Mais g_strdup ne devrait-il pas être capable de prendre une position de départ d'une corde C et de la duper? Si je fais ce qui suit cela fonctionne:
char temp[10];
strncpy(temp,inst->name,9);
char *str = g_strdup (temp);
Comment puis-je obtenir ce que je suis en train de le faire sans faire une copie locale de tableau de caractères? Je pense que je ne passe pas l'argument correctement dans le premier scénario car dans les deux cas, g_strdup est passé à un tableau char.
Si vous fournissiez le prototype de 'g_strdup', cela aiderait. –
@Pascal: gchar * g_strdup (const gchar * str); – tur1ng
Prototype: 'gchar * g_strdup (const gchar *);' –