Bonjour je suis etudiant et j'aurai besoin d'aide pour une question de TP :
Ecrire une fonction qui trie les valeurs d'un tableau d'éléments de type quelconque. La fonction doit recevoir en paramètre un pointeur sur la fonction qui compare deux éléments e1 et e2 et retourne -1, 0 ou 1, selon que e1 est inferieur, égal ou supérieur à e2.
J'ai réussi a ecrire cette fonction :
void tri2(void *tab, int tailleTab, int tailleElem,
int (*compare)(void *e1, void *e2) )
{
int i = 0;
while ( i <= tailleTab)
{
int k = (i - 2);
while (k >= 0 && ((*compare)(tab[k], tab[k+1]) == 1))
{
void temp;
copy(tab[k], &temp, tailleElem);
copy(tab[k+1], tab[k], tailleElem);
copy(&temp, tab[k], tailleElem);
k--;
}
i++;
}
}
Par contre j'ai un probleme pour la fonction copy, mon prof ma dit qu'elle devait etre de la forme :
void copy(void *source, void *destination, int tailleElem)
comment faire pour copier les données en memoire de source et de les mettres dans destination ?
merci d'avance pour l'aide ^^
PS : c'est mon premier post donc si quelque chose ne va pas dedans (ou que je ne respecte pas une règle ^^) n'hésité pas a me le signalé