Merci pour vos réponses
ed73: j'ai changé le nom de la variable mais ca n'a pas amélioré les choses
Pistol_pete: j'ai changé ma variable par i et modifié la condition de la boucle et toujours la même erreur....

//supprimer un chevalier + décaller les enregistrements
void delchev(chevalier tab[], int *nbchevalier)
{
int supprchev=0;
int i=0;
printf("Suppression d'un chevalier, veuillez entrer son numéro: \n\n\n");
scanf ("%d",&supprchev);
printf("\nSuppression du chevalier %s\n",tab[supprchev].nom);
for (i=supprchev;i<*nbchevalier;i++)
{
tab[i].nom = tab[i+1].nom;
tab[i].surnom = tab[i+1].surnom;
tab[i].couleurpref = tab[i+1].couleurpref;
tab[i].lexploit = tab[i+1].lexploit;
supprchev++;
}
*nbchevalier-=1;
system("PAUSE");
}