Por favor ayudemen con el sigueinte código debo aplicarle puntero y no tengo ni idea de como hacerlo. Les agradeceré mucho su ayuda.

Les adjunto el código es creado en C++.

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<ctype.h>

#define p printf
#define s scanf

int indice=-1;
#define max 10


void Menu();
void IngresoAlumn();
void Ordenar();
void Buscaralumno();
void Eliminacionfisica();
//void Eliminaciologica();
void Salir();
void REGRESAR();

struct alumno
{
char Ced[25];
char Nomb[25];
char Ape[25];
int Ed;
};

alumno E;
alumno Lista[max],aux;

void main()
{

Menu();
getch();
}

void Menu()
{
clrscr();
p("\n\t\tPROGRAMA MENÚ");
p("\n\n\t1. Ingreso de Datos.");
p("\n\t2. Buscar alumno por Cedula");
p("\n\t3. Mostra Lista de alumnos ordenada");
p("\n\t4. Eliminar un alumno de la lista");
int N;
do
{
p("\n\n\tIngrese la opción:\t");
s("%d",&N);
}while(N<1 || N>5);
switch(N)
{
case 1:
p("\n\n\tIngresar un alumno");
IngresoAlumn();
break;
case 2:
p("\n\n\tBuscar el alumno por cedula");
Buscaralumno();
break;
case 3:
p("\n\n\tLista de alumnos ordenada");
Ordenar();
break;
case 4:
p("\n\n\tEliminar un Alumno de la Lista");
Eliminacionfisica();
//Eliminacionlogica();
break;
case 5:
Salir();
break;
}
}
void IngresoAlumn()
{
clrscr();
printf("\nIngrese Nombre:\t");
scanf("%s",&E.Nomb);
printf("Ingrese Apellido:\t");
scanf("%s",&E.Ape);
printf("Ingrese Cedula:\t");
scanf("%s",&E.Ced);
printf("Ingrese edad:\t");
scanf("%d",&E.Ed);
indice++;
Lista[indice]=E;
REGRESAR();
}

void Buscaralumno()
{
clrscr();
char Ced[9];
printf("Ingrese Cedula:\t");
scanf("%s",&Ced);
for(int i=0;i<=indice;i++)
{
if(strcmp(Lista[i].Ced,Ced)==0)
{
printf("Nombre:%s - Apellido:%s - Edad:%d",Lista[i].Nomb, Lista[i].Ape, Lista[i].Ed);

i=indice;
}
}
REGRESAR();
}

void Ordenar()
{
clrscr();
alumno aux;
for(int i=0;i<=indice-1;i++)
{
for(int j=i+1;j<=indice;j++)
{

if(strcmp(Lista[i].Nomb,Lista[j].Nomb)>0)
{
aux=Lista[i];
Lista[i]=Lista[j];
Lista[j]=aux;
}
else
if(strcmp(Lista[i].Nomb,Lista[j].Nomb)==0)
{
if(strcmp(Lista[i].Ape,Lista[j].Ape)>0)
{
aux=Lista[i];
Lista[i]=Lista[j];
Lista[j]=aux;
}

}
}
}
for(int x=0;x<=indice;x++)
{
printf("\nApellido:%s - Nombre:%s - cedula:%s - Edad:%d",Lista[x].Ape, Lista[x].Nomb, Lista[x].Ced, Lista[x].Ed);


}
REGRESAR();
}

void REGRESAR()
{
char r;
do
{
printf("\t\nDesea realizar otra Opción:S/N\t");
r=toupper(getche());
}while(r!='S' && r!='N');
if(r=='S')
Menu();
if(r=='N')
Salir();
}

void Salir()
{
clrscr();
gotoxy(25,20);
printf("M U C H A S G R A C I A S");
}

void Eliminacionfisica()
{
clrscr();
int i;
int Control;
char Ced[9];
printf("Ingrese Cedula:\t");
scanf("%s",&Ced);
for(i=0;i<=indice;i++)
{
if(strcmp(Lista[i].Ced,Ced)==0)
{
Control=i;
i=indice;
}
}
for(i=Control;i<indice-1;i++)
Lista[i]=Lista[i+1];
indice--;
REGRESAR();
}


/*void Eliminacionlogica();
{
p("\nIngrese Cedula a Eliminar");
s("%s",Ced);

for(int i=0;i<indice;i++)
{
if(strcmp(Lista[i].Ced,Ced)==0)
Lista[i].Estado=I;
}
REGRESAR();
} */