Invalid type argument of -> C structs

后端 未结 2 1427
小鲜肉
小鲜肉 2020-12-05 13:07

I am trying to access items in an array of structs and print the structs fields as follows

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

            


        
2条回答
  •  野趣味
    野趣味 (楼主)
    2020-12-05 13:50

    You need to use the . operator. You see, when you apply a * to a pointer, you are dereferencing it. The same goes with the []. The difference between * and [] is that the brackets require an offset from the pointer, which is added to the address in the pointer, before it is dereferenced. Basically, these expressions are identical:

    *ptr == ptr[0]
    *(ptr + 1) == ptr[1]
    *(ptr + 2) == ptr[2]
    

    To connect to your question: Change a[i]->field2 and a[i]->field3 to a[i].field2 and a[i].field3.

提交回复
热议问题