typedef struct {
char name[10];
} A;
A * inst = get_instance_of_A();
char *str = g_strdup ( inst->name );
最后一行没有编译。我也试过 &(inst->name) 没有运气。我得到的错误是:
错误:char 不是结构类型。
我知道 char[] 和 char * 完全是不同的类型。但是 g_strdup 不应该能够获取 C 字符串的起始位置并欺骗它吗?如果我执行以下操作,它会起作用:
char temp[10];
strncpy(temp,inst->name,9);
char *str = g_strdup ( temp );
如何在不制作本地 char 数组副本的情况下实现我想要做的事情?我认为我在第一种情况下没有正确传递参数,因为在这两种情况下 g_strdup 都被传递了一个 char 数组。