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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
void retirerElement(s_livraison **tab, int indice, int *nbLivraison){
int i;
int j=0;
s_livraison *temp=NULL;
printf("debut indice = %d et nbLivraison = %d\n",indice,*nbLivraison);
system("pause");
temp = (s_livraison*)malloc ((*nbLivraison-1) * sizeof(s_livraison));
if(temp==NULL) printf("ERREUR \n"); else printf("OK \n");
for(i=0,j=0; i<(*nbLivraison) && j<(*nbLivraison); i++,j++){
//element different de celui à supprimer
if (i != indice){
//recopie de lelement a garder
*(temp+i)=*(*tab+j);
}else{
j=j+1;
if(j<(*nbLivraison))*(temp+i)=*(*tab+j);
}
}
//Free du tableau
free(*tab);
*tab=temp;
// Taille = taille -1
*nbLivraison = *nbLivraison - 1;
}
void suppElement(s_livraison **tab, int nBonAsupp, int *nbLivraison){
int i;
int j=0;
s_livraison *temp;
temp = (s_livraison*)malloc ((*nbLivraison-1) * sizeof(s_livraison));
if(temp==NULL) printf("ERREUR \n"); else printf("OK \n");
for(i=0,j=0; i<(*nbLivraison) || j<(*nbLivraison); i++,j++){
//element different de celui à supprimer
if((*tab+i)->nBon != nBonAsupp){
//recopie de lelement a garder
*(temp+i)=*(*tab+j);
}else{
j=j+1;
if(j<(*nbLivraison))*(temp+i)=*(*tab+j);
}
}
//Free du tableau
free(*tab);
*tab=temp;
// Taille = taille -1
*nbLivraison = *nbLivraison - 1;
} |