Bonjour à tous!
Je fais appel à votre expérience pour une question qui me bloque:
Je travaille sur un tableau de types structurés
Mon problème: je souhaiterais supprimer une case de ce tableau qui manipule des informations sur des CDs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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!
Partager