0

次のコードがあります。

people[nextfreeplace] -> personName = name;
people[nextfreeplace] -> age = age;

typedef struct person
{
  char *personName;
  int age;
}Person;

人物宣言はPerson *people[]

を受け取っていますerror: request for member 'personName' in something not a structure or union

error: request for member 'age' in something not a structure or union

しかし、プログラムの何が問題なのかわかりません。

ありがとう

4

3 に答える 3

2

またはpeopleであると仮定します。Person *Person[]

operator を使用する場合->は、変数を逆参照してアクセスします。するのと同じです(*var).personName

->person[1] を使用するときは、既にポインターを逆参照してから、単純な場合と同じように変数にアクセスするため、 をドットで変更します。Person var

people[nextfreeplace].personName = name;
people[nextfreeplace].age = age;
于 2012-10-25T09:28:52.677 に答える
0

型の宣言は、型のインスタンス (のメンバー) にアクセスする前に行う必要があります。

typedef struct person
{
  char *personName;
  int age;
}Person;

...

Person *people[];

...

people[nextfreeplace] -> personName = name;
people[nextfreeplace] -> age = age;
于 2012-10-25T09:43:30.913 に答える
0

構造体の配列を使用しているため、.代わりに使用します。->

于 2012-10-25T09:25:18.560 に答える