Copie d'une structute en c debutant

Résolu
allezlolo -  
 allezlolo -
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 2449 Statut Membre 437
 
aux=e[i];
e[i]=e[j];
e[j]=aux;
essaye ça
1
allezlolo
 
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 2449 Statut Membre 437
 
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
allezlolo
 
en effet ça marche merci
0
Mahmah Messages postés 497 Statut Membre 125
 
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
allezlolo
 
merci pour cette précision ;)
0