gpt4 book ai didi

c - g_strduping 一个 char 数组成员元素

转载 作者:太空宇宙 更新时间:2023-11-04 00:11:07 25 4
gpt4 key购买 nike

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 );

如何在不制作本地字符数组副本的情况下实现我想要做的事情?我想我在第一种情况下没有正确传递参数,因为在这两种情况下 g_strdup 都被传递了一个 char 数组。

最佳答案

我不认为你的问题出在你认为的地方。 gcharchar 对于所有意图和目的都是一样的。例如,这段代码对我来说很好用:

#include <glib.h>

typedef struct {
char name[10];
} A;

A global_A = { "name here" };

A *
get_instance_of_A(void)
{
return &global_A;
}

int
main(int argc, char **argv)
{
const A *inst = get_instance_of_A();
char *str = g_strdup(inst->name);
g_print("%s\n", str);
return 0;
}

关于c - g_strduping 一个 char 数组成员元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2124313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com