Modifier une structure depuis une fonction

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 193 fois - Téléchargée 37 fois

Contenu du snippet


Source / Exemple :


#include <stdio.h>

struct Forme
 {
   int type;
   int couleur;
   float angle;
   float espace;
   float perimetre;
 };

void change_structure(struct Forme *Forme)
 {
   (*Forme).type = 0;
   (*Forme).couleur = 1;
   (*Forme).angle = 5.0;
   (*Forme).espace = 22.0 / 7.0 * (*Forme).angle * (*Forme).angle; 
   (*Forme).perimetre = 2.0 * 22.0 / 7.0 * (*Forme).angle;
 }

void main(void)
 {
   struct Forme cercle;
   
   change_structure(&cercle);
   printf("cercle.type %d\n", cercle.type);
   printf("cercle.couleur %d\n", cercle.couleur);
   printf("cercle.angle %f cercle.espace %f cercle.perimetre %f\n",
     cercle.angle, cercle.espace, cercle.perimetre);
 }

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
dimanche 28 mars 2010
Statut
Membre
Dernière intervention
15 mai 2010

bOnne continuation !
Messages postés
15
Date d'inscription
lundi 4 août 2003
Statut
Membre
Dernière intervention
8 juin 2007

Pareil, tu passes le pointeur en paramètre. Le type de paramètre pris par la fonction change_structure() ne change donc pas, sauf éventuellement on peut rajouter un autre argument size_t nb_formes. Dans cette fonction, tu utilises une boucle for pour faire ce que tu veux avec les structures reçues...
Messages postés
3
Date d'inscription
mardi 16 mars 2010
Statut
Membre
Dernière intervention
13 avril 2010

mais s'il etait un tableau de structure comment on fait???
Messages postés
15
Date d'inscription
lundi 4 août 2003
Statut
Membre
Dernière intervention
8 juin 2007

Initié, _ça_ ?
Messages postés
54
Date d'inscription
vendredi 28 décembre 2001
Statut
Membre
Dernière intervention
13 mai 2007

oui, c vrai.Tout les exemples que j'ai vu commettaient cette erreur: la variable et le type on le meme nom, c'est incompréhensible pour un newbie.
Afficher les 9 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.