动态构造存放学生的结构体数组函数版怎么写?

/*动态构造存放学生的结构体数组
动态构造一个数组,存放学生的信息
然后按分数排序                   */

#include<stdio.h>
#include<malloc.h>

struct Student{
        int age;
        char name[100];
        float score;
    };

int main(){
    struct Student*pArr;
    int len,i,j;
    struct Student t;
    printf("请输入学生的人数:");
    scanf("%d",&len);
    printf("len=%d\n",len);


    pArr=(struct Student*)malloc(len*sizeof(struct Student));  //动态分配数组

for(i=0;i<len;i++){
    printf("请输入第%d个学生的信息:\n",i+1); 

    printf("age=");
    scanf("%d",&pArr[i].age);

    printf("name=");
    scanf("%s",pArr[i].name);

    printf("score=");
    scanf("%f",&pArr[i].score);

    }
//排序

    for(i=0;i<len-1;i++){
        for(j=0;j<len-1-i;j++){
            if(pArr[j].score>pArr[j+1].score){
                t=pArr[j];
                pArr[j]=pArr[j+1];
                pArr[j+1]=t;
            }
        }
    }


    //输出
    printf("\n\n学生的信息:\n");
     for(i=0;i<len;i++){
    printf("输出第%d个学生的信息:\n",i+1); 

    printf("age=%d\n",pArr[i].age);

    printf("name=%s\n",pArr[i].name);

    printf("score=%f\n",pArr[i].score);

}
    printf("\n");
}

//代码如上,请问把代码里的输入,输出,冒泡排序的for循环写成函数调用的话怎么写呢?麻烦告诉我简单具体的写法,不太掌握这方面的,谢谢!

Bubble_Sort(pArr,len);

void Bubble_Sort(Student student[], int len){
int i = 0;
int j = 0;

for(i=0;i<len-1;i++){
        for(j=0;j<len-1-i;j++){
            if(student[j].score > student[j+1].score){
                t=student[j];
                student[j]=student[j+1];
                student[j+1]=t;
            }
        }
}

}