这是家庭作业的一部分,我已经好几天了。 所以我们定义了这个结构
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..};
只读取第一个字符并忽略其余字符。 如何获取传递给新人的值。
这也不起作用:
char newname[30];
strcpy_s(newname, 30, name);
struct person newperson = { .name = newname //...}
答案 0 :(得分:0)
有两个问题:
首先,你取消引用指针变量newname
。这会给你指针指向的值,这实际上只是字符串的第一个字母。
第二个问题是您无法使用指针或其他数组初始化数组。您必须复制数组。对于字符串,您应该使用strcpy
(或strcpy_s
,如果可用的话)。