Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1729 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]

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.

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

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 très difficile: récup d'une portion de chaîne et substitution
Question de modélisationpetite question sur le foreach
Question de noob 
Plus de sujets relatifs à : question C


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR