1. ホーム
  2. c

[解決済み] 無効な型引数 -> C構造体

2022-01-28 01:35:54

質問

次のように、構造体の配列のアイテムにアクセスして、構造体のフィールドを表示しようとしています。

printList(Album *a, int numOfStructs)
{
    int i;
    int j;

    for(i = 0; i < numOfStructs; i++)
    {
         printf("number%d\n:", i+1);
         printf("%s", a[i]->field2);
         printf("%s", a[i]->field2);
         printf("%d", a[i]->field3);

         for(j = 0; j < a[i]->numOfStrings; j++)
         {
             printf("%s", a[i]->strings[j]);
         }
         printf("\n");
    }
}

しかし、次のようなエラーが表示されます。

無効なタイプの引数 '->' です。

このポインターのどこが悪いのでしょうか?

解決方法は?

a は、タイプ Album* ということは a[i]Album (それは i の配列に含まれる最初の要素です。 Album が指すオブジェクトは a ).

の左オペランドは -> はポインタでなければなりません。 . 演算子は、ポインタでない場合に使用されます。