Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide Recherche
2300 connectés 

  FORUM HardWare.fr
  Programmation
  C

  question C

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

question C

n°1645517
wind128
Posté le 19-11-2007 à 22:57:31  profilanswer
 

bonjour,
dans le code suivant :

Code :
  1. void Push(pile **p, int Val)
  2. {
  3.         pile *element = malloc(sizeof(pile));
  4.         if(!element) exit(1);     /* Si l'allocation a échouée. */
  5.         element->valeur = Val;
  6.         element->prec = *p;
  7.         *p = element;       /* Le pointeur pointe sur le dernier élément. */
  8. }


 
je ne comprends pas les 3 dernières instructions    
Pour la derniere instruction, comment il sait qu'il pointe sur le dernier élément ?
est-ce que quelqu'un pourrait bien expliquer en detail ce qu'il se passe dans les trois dernieres instructions ?
 
merci.

mood
Publicité
Posté le 19-11-2007 à 22:57:31  profilanswer
 

n°1645536
Elmoricq
Modérateur
Posté le 20-11-2007 à 00:10:59  profilanswer
 

Il s'agit d'affectations. [:klem3i1]


---------------
Blacker than a moonless night, hotter and more bitter than hell itself... That is coffee.
n°1645560
olivthill
Posté le 20-11-2007 à 07:19:35  profilanswer
 

La fonction malloc() va attribuer de l'espace pour un nouvel élément. Ce nouvel élément sera appelé le "dernier élément" dans l'ordre chronologique. Ce n'est pas forcément le dernier dans le sens du plus grand ou du plus petit.
La flèche dans "element->valeur" indique que element est un pointeur sur une structure et que valeur est un membre de cette structure.

n°1645700
ngkreator
Posté le 20-11-2007 à 11:41:37  profilanswer
 

Si par hasard tu lisais les explications là où tu as trouvé cet exemple: http://chgi.developpez.com/pile/
 

Citation :

La fonction reçoit comme paramètres la valeur que l'on veut mémoriser mais aussi un pointeur sur le pointeur identifiant la pile. Pourquoi un pointeur de pointeur ? Ceci afin de passer l'adresse du pointeur à la fonction pour que celle-ci puisse le modifier.
Dans la fonction nous créons en premier lieu le nouvel élément (*element) avec l'instruction malloc. Nous lui affectons sa valeur, mais aussi l'adresse de l'élément précédent qui est en fait le sommet actuel de la pile et enfin nous affectons le pointeur identifiant la pile par pointeur déréférencé avec l'adresse de l'élément que l'on vient de créer afin qu'il devienne le sommet de la pile.


---------------
҉ Jésus a marché sur l'eau, mais Chuck Norris a marché sur Jésus.
n°1645730
matafan
Posté le 20-11-2007 à 12:33:17  profilanswer
 

NGKreator, c'est quoi ce cercle pointillé que tu as avant ta signature, à cheval sur les parties gauche et droite ? Ca m'intrigue :)

n°1645750
ngkreator
Posté le 20-11-2007 à 12:49:02  profilanswer
 

matafan a écrit :

NGKreator, c'est quoi ce cercle pointillé que tu as avant ta signature, à cheval sur les parties gauche et droite ? Ca m'intrigue :)


Normalement il est sensé inverser le sens d'écriture si tu le colle quelque part. Mais apparemment ça marche plus, enfin ça dépend des fois.
 
Voilà un exemple
‫‬‭‮‪‫‬‭‮҉Voilà un exemple


Message édité par ngkreator le 20-11-2007 à 12:54:21

---------------
҉ Jésus a marché sur l'eau, mais Chuck Norris a marché sur Jésus.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  question C

 

Sujets relatifs
[SQL] Question bidon pour les débutantsPetite question bidon
[Question] BATCH DOS : Ecrire un retour chariot dans variable[C#] Question de débutant
petit question sur un petit problémeQuestion de noob sur le packaging de webapp JSF
Question très difficile: récup d'une portion de chaîne et substitutionQuestion de modélisation
petite question sur le foreachQuestion de noob
Plus de sujets relatifs à : question C


Hit-Parade
Copyright © 1997-2012 Hardware.fr SARL / Groupe LDLC / LesNumeriques.com / Version anglaise du site: BeHardware