结构体数组作为参数传递

请大家看看我这个问题呗
编译总是有问题
#include <stdio.h>
struct lifting
{
char a[];
int b;
int c;
};
int i;
struct lifting ha;
struct lifting compare(struct lifting *A, struct lifting t[]){
*A=t[0];
for(i=1;i<4;i++){
if((*A).c<t[i].c){
*A=t[i];
}
}
return *A;
}
int main(){

struct lifting ti[4];
for(i=0;i<4;i++){
    scanf("%s %d %d",ti[i].a,&ti[i].b,&ti[i].c);
}
struct lifting *A;
//struct lifting *B=&t2;
//printf("kkkkk");
//printf("%d \n",(*A).c);
*A=compare(*A,ti);
printf("%s",(*A).a);

}

代码修改如下

#include <stdio.h>
struct lifting
{
    char a[50];
    int b;
    int c;
};
int i;
struct lifting ha;
struct lifting *compare(struct lifting *A, struct lifting t[])
{
    A = &t[0];
    for (i = 1; i < 4; i++)
    {
        if ((*A).c < t[i].c)
        {
            A = &t[i];
        }
    }
    return A;
}
int main()
{
    struct lifting ti[4];
    for (i = 0; i < 4; i++)
    {
        scanf("%s %d %d", ti[i].a, &ti[i].b, &ti[i].c);
    }
    struct lifting *A;
    // struct lifting *B=&t2;
    // printf("kkkkk");
    // printf("%d \n",(*A).c);
    A = compare(A, ti);
    printf("%s", (*A).a);
}

img