c - 给指针char赋值?

标签 c struct strncpy

struct group {
    char *name;
    struct user *users;
    struct xct *xcts;
    struct group *next;
};

int add_group(Group **group_list_ptr, const char *group_name) {
printf("%p\n",group_list_ptr);
*group_list_ptr = malloc(sizeof(struct group));

printf("%p\n",*group_list_ptr);
printf("%p\n",(*group_list_ptr)->name);
(*group_list_ptr)->name = malloc(sizeof(*group_name));
printf("%p\n",(*group_list_ptr)->name);
strncpy((*group_list_ptr)->(*name), "hello", strlen(*group_name));
//printf("%s\n",(*group_list_ptr)->name);
return 0;

}

如何为 *name 赋值。在我为结构分配内存后,我为名称分配了内存

strncpy((*group_list_ptr)->(*name), "hello", strlen(*group_name));

我正在用“hello”测试它,但我想复制 const char *group_name。

我收到错误

lists.c:24:32: error: expected identifier before ‘(’ token
lists.c:24:32: error: too few arguments to function ‘strncpy’

最佳答案

strncpy((*group_list_ptr)->name, "hello", strlen("hello"));

您不想取消引用 name 成员,这是编译器错误。

您也不能使用 sizeof 来获取字符串的长度。使用 strlen()。

对于 strcpy(),最后一个参数是要复制的字符串的长度。确保它小于目标缓冲区!

关于c - 给指针char赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14781493/

相关文章:

c - 如何检查字符串是否在文件中

c# - 在结构中初始化列表

ios - 我有一个模型,其中我得到一个键值 nil 但数据来自 json 响应是完美的

c++ - cppcheck - 终止Strncpy

c - 我的字符串连接每次结果都会加倍,为什么?

c - fork() 的异步信号安全

使用 malloc 将 token 复制到二维数组

c - 无法使文件 I/0 在周期计数器功能 -c 中工作

c - struct allocate C 表

c++ - strncpy 文档问题