gpt4 book ai didi

c - 从 C 中的指针实例化一个新结构

转载 作者:行者123 更新时间:2023-11-30 21:08:17 25 4
gpt4 key购买 nike

这是我几天来一直在努力完成的家庭作业的一部分。所以我们定义这个结构体

typedef enum { male = 0, female } gender;

struct person {
char name[30];
gender genderValue;
int age;
float weight;};

现在,我们得到了这个函数

int add(char* name, char* genderValueString, int age, float weight){}

我们被要求在该函数内构造一个新人。我尝试了不同的方法,但不断出错,甚至无法正确命名。

struct person newperson = {.name = *newname, //...rest of code..};

只读取第一个字符,忽略其余字符。如何将值传递给新人 person。

这也不起作用:

char newname[30];
strcpy_s(newname, 30, name);
struct person newperson = { .name = newname //...}

最佳答案

有两个问题:

首先是您取消引用指针变量newname。这为您提供了指针指向的值,这实际上只是字符串的第一个字母。

第二个问题是不能用指针或另一个数组初始化数组。您必须复制数组。对于字符串,您应该使用 strcpy (或者 strcpy_s 如果可用的话)。

关于c - 从 C 中的指针实例化一个新结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39681543/

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