Rechercher : dans
Par :

Langage c les unions

Dernière réponse le 17 jun 2008 à 15:06:17 alicia85, le 17 jun 2008 à 13:51:29 
 Signaler ce message aux modérateurs

Bonjour, svp j ai ce pb avec les unions lorsque je declare une union je ne sais pas comment l utiliser dans le cadre des piles voici le code j ai une petite erreur au niveau des données et je ne sais pas s il fo par exemple empiler les 2 membres du champ a la fois ou chacun
typedef union ElementListe{
char donnee;
int val;
union ElementListe *suivant;
} Element;

typedef struct ListeRepere{
Element *debut;
int taille;
} Pile;

apres dans empiler et depiler je ne sais comment faire si je veux empiler l un ou lautre ou je dois empiler les 2 comme suis
int empiler (Pile * tas, char donnee,int val){
Element *nouveau_element;
if ((nouveau_element = (Element *) malloc (sizeof (Element))) == NULL)
return -1;

nouveau_element->donnee=donnee;
nouveau_element->val=val;
nouveau_element->suivant = tas->debut;
tas->debut = nouveau_element;
tas->taille++;

merci d avance

Configuration: Windows 2000
Firefox 2.0.0.14

Meilleures réponses pour « langage c les unions » dans :
Langage C++ - Les types de données Voir Les types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Langage C - Les types de données Voir Les types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le...
Langage C - Les chaînes de caractères Voir Qu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...
[Langage C] C/C++ Erreur de segmentation VoirQu'est ce qu'une erreur de segmentation Vous êtes en train de développer une application sous Linux en C/C++. Tout va bien, ça compile, les oiseaux chantent. Donc vous lancez votre application pour la tester. Et vous obtenez l'un de ces deux...
Les piles en langage C VoirLes piles Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la pile IV. Opérations sur les piles A. Initialisation B. Insertion d'un élément dans la pile C. Ôter un élément de la pile D. Affichage...
Les files en langage C VoirLes files - Premier Entré Premier Sorti Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la file IV. Opérations sur les files A. Initialisation B. Insertion d'un élément dans la file C. Oter un...
Langage C - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage C sont typées, c'est-à-dire que les données contenues dans...
Les classes en langage C++ VoirLa notion d'objet Le langage C est un langage procédural, c'est-à-dire que c'est un langage permettant de définir des données grâce à des variables, et des traitements grâce aux fonctions. L'apport principal du langage C++ par rapport au...

1

 Char Snipeur, le 17 jun 2008 à 15:06:17

Salut.
un peu confus ce que tu nous raconte là.
Je maitrise peu les union, mais ta définition de Element me parait étrange.
Pour moi un union c'est une struct dont chaque membre occupe la même mémoire. Donc lorsque tu modifie Element::suivant, tu modifie donnee ET val. (Encore dans ce sens pourquoi pas), et lorsque tu modifie val ou donnee tu modifie suivant, et là c'est dangereux car c'est un pointeur. Après, il y a peut être une nuance des union qui m'échappe.
Donc, ce que tu fait dans ta fonction, empiler, je trouve ça étrange. Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ
Char Snipeur

Répondre à Char Snipeur
Collection CommentÇaMarche.net