Pequeno problema em C

Oi pessoa, meu professor de estrutura de dados pediu para que fizesse um algoritmo para cadastrar alunos, suas notas e outras coisas relacionadas utilizando um struct. Os alunos são ordenados com a função qsort() e depois é utilizado a função bsearch() para procurar um desses alunos que foram cadastrados, o nome pesquisado é retornado normalmente o problema é que não consigo mostrar a nota do aluno, segue o código:

`struct aluno {
char nome[81];
char mat[8];
char turma;
char email[41];
float nota;
};

typedef struct aluno Aluno;
static int compara(const void *p1, const void *p2);

int main(){

Aluno *alunos[3];

int i;
for(i=0;i<3;i++){
	alunos[i] = (Aluno*)malloc(sizeof(Aluno));
	printf("Digite o nome do aluno: ");
    scanf("%s", alunos[i]->nome);

    printf("Digite a nota do aluno: ");
    scanf("%f", &alunos[i]->nota);
    
}

char nomeSearch[20];
printf("\n\nDigite o nome do aluno a ser pesquisado: ");
scanf("%s", &nomeSearch);


qsort(alunos, 3, sizeof(Aluno*), compara);
Aluno *res = (Aluno*)bsearch(&nomeSearch, alunos, 3, sizeof(Aluno*), compara);

if(res!=NULL){
    printf("Nome %s encontrado.\nNota: %0.2f", *(Aluno*)res->nome, res->nota);
}else{
    printf("O retorno e NULL");
}

free(alunos);

}

static int compara(const void *p1, const void *p2){
char s = (char)p1;
Aluno a2 = (Aluno)p2;
return strcmp(s, (*a2)->nome);
}`