Bonjour à tous!

Je fais appel à votre expérience pour une question qui me bloque:
Je travaille sur un tableau de types structurés
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;
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
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!