关于结构体指针

 void tele_arrange(tele_list *t,int N){
        int i,j;
        for(i=0;i<N;i++)
            for(j=i+1;j<N;j++)
                if(strcmp(t[i].name,t[j].name)>0)
                    swap_user(*t[i],*t[j]);
    }
    
void swap_user(tele_list *user1,tele_list *user2){
    tele_list tmp;
    tmp=*user1;
    *user1=*user2;
    *user2=tmp;
}

这里swap_user(*t[i],*t[j]);报错,求指导
阅读 2.1k
2 个回答
swap_user(*t[i], *t[j]);

这里取地址应该用&吧:

swap_user(&t[i], &t[j]);

或者直接这样:

swap_user(t + i, t + j);

@csm 正解 要将地址作为输入

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进