Copie d'une structute en c debutant

Résolu/Fermé
allezlolo - 1 mai 2008 à 15:31
 allezlolo - 1 mai 2008 à 19:02
Bonjour,

Voilà, mon exemple est assez simple, je souhaite trier un tableau d'équipes en fonction de leurs points.

La fonction me renvoyant le nombre de points en fonction d'un tableau de résultats est déjà faite.

Voici mon type équipe :

typedef struct equipe {
char *nom;
char * tab[24];
}equipe;

Voici maintenant ma fonction de tri :

void tri (equipe e[], int nombreEquipes, match m[], int nombreMatchs) {

int i,j,k =0;
equipe aux;
for (i; i < nombresEquipe; i++) {
for (j = i + 1; j < nombresEquipe; j++) {
if (points(e[i],m,nombresMatchs) > points(e[j],m,nombresMatchs)) {
// copier dans aux le contenu de e[i]
// copier dans e[j] le contenu de e[i]
// copier dans e[i] me contenu de aux
}
}
}

Je cherche donc à trouver une fonction me permettant de copier des structures pour pouvoir faire mes échanges dans mon tableau.

merci d'avance pour votre aide
A voir également:

5 réponses

mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
1 mai 2008 à 16:28
aux=e[i];
e[i]=e[j];
e[j]=aux;
essaye ça
1
Salut,

merci je vais essayer ça mais je trouve cela bizarre, on ne peux pas copier des string de cette manière mais l'on pourrait copier des structures entières ?

cdt,

guillaume
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
1 mai 2008 à 17:22
ben ça ça longtemps que j'ai pas utilisé les structures mais il me semble que l'on peut les copié comme ça
sinon tu copies chaques champs avec des strcpy()...
0
en effet ça marche merci
0
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
1 mai 2008 à 18:39
Bonjour,

C'est exact, les chaînes de caractères ne sont pas copiées. Seulement les adresses mémoire où sont réellement ces chaînes. Des pointeurs donc. La structure originale et la structure copiée possèdent les mêmes adresses mémoires vers des zones qui contiennent des caractères. Si une chaîne est modifiée elle le sera pour les deux structures.

M.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
merci pour cette précision ;)
0