Todo el mal radica en cómo declaras notas y el char que usas.
Ya que usas array de longitud variable en:
Código (cpp) [Seleccionar]
int notasEnteras[alumnos];
no sé por qué no haces lo mismo con notas:
Código (cpp) [Seleccionar]
char *notas[alumnos];
Pero si lo quieres hacer con malloc, entonces:
Código (cpp) [Seleccionar]
char **notas;
*notas=malloc(alumnos * sizeof (char));
¡¡¡¡ Saluditos! ..... !!!!