affectation de pointeur

affectation de pointeur - C - Programmation

Marsh Posté le 14-03-2004 à 14:23:22    

j'ai une structure :

Code :
  1. typedef struct {
  2.   int voisin;
  3.   struct TypVoisin* suivant;
  4.   struct TypVoisin* precedent;
  5. }TypVoisins;


 
dans mon main, j'appelle :
 

Code :
  1. TypVoisins* v;
  2. v = creationListeVide(); // crée une cellule qui se pointe dessus (suivant et précédent);
  3. insertionArete(v, 3); // j'attache la cellule 3 à v
  4. suppressionListe(v);


 
avec  

Code :
  1. int suppressionListe(TypVoisins* tete){
  2.   // vidage des suivants
  3.   tete = NULL;
  4. }


 
dans le main

Code :
  1. if (v==null) {printf("null\n" );


n'affiche jamais "null"
 
Le problème est donc : comment changer la valeur du pointeur "tete" dans la fonction suppressionListe ??


Message édité par nibbles1 le 14-03-2004 à 14:36:37
Reply

Marsh Posté le 14-03-2004 à 14:23:22   

Reply

Marsh Posté le 14-03-2004 à 14:29:22    

le passer par pointeur

Reply

Marsh Posté le 14-03-2004 à 14:35:15    

tu pourrais être un tout petit peu plus explicite ;) ?

Reply

Marsh Posté le 14-03-2004 à 14:38:58    

oh tu peux le faire tout seul tu vas voir.
 
mets toi un typedef bien placé pour te servir d'oeillères
 
typedef TypVoisins* pTypVoisins
 
 
maintenant, tu ferais comment pour faire une fonction qui modifie  un pTypVoisins ? passage avec un pointeur comme si c'était un pauvre int. ça marche. débarasse toi du typedef, tu te retrouves avec 2 étoiles **, louche dessus le temps de comprendre, et hop cai gagné :D

Reply

Marsh Posté le 14-03-2004 à 14:41:35    

ok, je vais voir, merci [:boidleau]

Reply

Marsh Posté le 14-03-2004 à 14:51:26    

Ce que tu veux dire c'est que peut importe la donnée qu'on possède dans le main, que ce soit un int, ou un int* ou un int** ou etc...
 
Si on veut en modifier la valeur depuis une fonction, il faudrat passer un pointeur sur cette "entité"????
 

Reply

Marsh Posté le 14-03-2004 à 14:56:47    

exactement

Reply

Marsh Posté le 14-03-2004 à 14:59:35    

oui

Reply

Marsh Posté le 14-03-2004 à 15:31:52    

donc c'est la guerre des **  
 
désolé
 
donc en fait si je faisais un malloc et un free pour un TypVoisins*, je ferai 2 malloc et 2 free pour un TypVoisins** ?

Reply

Marsh Posté le 14-03-2004 à 15:34:27    

non, pas du tout.
l'allocation dynamique n'a rien à voir.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed