Supprimer une case d'un tableau
Bonjour à tous!
Je fais appel à votre expérience pour une question qui me bloque:
Je travaille sur un tableau de types structurés
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
typedef struct {
char titre [40];
char artiste [40];
int annee;
char genre [40];
char fichier_pochette [40];
} t_cd ;
typedef struct {
t_cd tab[MAX];
} t_liste; |
Mon problème: je souhaiterais supprimer une case de ce tableau qui manipule des informations sur des CDs.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| void supprimerCD(char titre[40], t_cd liste [], int *nb_cd){
int i=0; // indice qui correpond au i-eme CD
int j=0;
int R;
for (i=0; i<=*nb_cd; i++)
{
R=strcmp(titre , liste[i].titre);
if (R==0)
{
for (j=i; j<=*nb_cd-i; j++){
liste [j]= liste [j+1];
// c'est ici que je bloque.. comment creer un nouveau tableau mais de dimension -1
}
break;
}
}
if (R!=0){
printf("CD NON TROUVE\n");
}
} |
J'ai compris la manoeuvre: je recopie tout mon tableau en remplaçant celle que je veux supprimer par celle d'après puis je recopie mon tableau dans
un autre taille de dimension [t-1].
C'est justement cette partie que je n'arrive pas à faire.
Merci par avance!