これは私が数日間苦労している宿題の一部です。 だから我々は今、この構造体Cのポインタから新しい構造体をインスタンス化
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..};
のみを読み取り、残りの文字は無視します。 新しい人物に値を渡すにはどうすればよいですか?
これはどちらか動作しません:
最初はそのあなた逆参照ポインタ変数newname
です:
char newname[30];
strcpy_s(newname, 30, name);
struct person newperson = { .name = newname //...}
Cで 'char'配列(または"文字列 ")をコピーするには、それぞれの' char'を個別にループしてコピーする必要があります。 – ray
'newname'と' .name = newname'を取り出して、イニシャライザの後に '.name'に' strcpy'を使います。 –