Copie d'une liste doublement chainée - C++ - Programmation
Marsh Posté le 11-11-2002 à 19:52:41
le fait quelle soit doublement chainee c juste que il y a un lien vers lelement precedent?
Marsh Posté le 11-11-2002 à 20:36:55
red faction a écrit a écrit : le fait quelle soit doublement chainee c juste que il y a un lien vers lelement precedent? |
oui
Marsh Posté le 11-11-2002 à 21:37:55
dis moi toua!!
tu serais pas de l INSIA par hazard
lol
Marsh Posté le 11-11-2002 à 22:13:47
Salut à toi, neokill@h
Plusieurs remarques :
1/ Quand tu écris :
Citation : |
ta deuxième ligne annule la première ! Ta fonction d'allocation te renvoie l'adresse d'une zone mémoire libe pour ton pointeur "copy", mais à la ligne du dessous tu remplaces cette adresse par celle contenue dans "list". En gros, "copy" n'est pas un double de "list", mais le même objet avec deux noms différents.
Je pense que ce que tu veux faire ressemble plutôt à ça :
copy = my_alloc(); //alloue de la memoire
*copy = *list; //duplique le contenu de "list" dans "copy"
2/ Ce que tu viens de faire, c'est uniquement la copie du premier élément de ta liste : il faut également faire cette opération pour les autres éléments.
3/ Du coup, tu devras modififer ta boucle. N'oublie pas de modifier "copy->prev", que tu avais oublié semble-t-il.
4/ Suivant la nature de "data", un memcpy sera peut-être le bienvenu.
Marsh Posté le 11-11-2002 à 22:44:02
nikauch a écrit a écrit : dis moi toua!! tu serais pas de l INSIA par hazard lol |
camarade
Marsh Posté le 11-11-2002 à 22:46:20
Fork a écrit a écrit : Salut à toi, neokill@h Plusieurs remarques : 1/ Quand tu écris :
|
merci pour ton aide , je vais tester ca de suite...
Marsh Posté le 12-11-2002 à 02:09:45
D'abord, il faut arrêter d'écrire n'importe quoi:
Code :
|
Code :
|
Ensuite, il faut donner des noms clairs pour s'y retrouver:
Code :
|
Et ce n'est pas si compliqué:
Code :
|
Attention, c'est du garanti 100% non-testé, donc tu va peut-être devoir faire et comprendre quand même...
Marsh Posté le 11-11-2002 à 18:54:44
Salut, j'ai un petit probleme avec une fonction qui retourne une copie d'une liste doublement chainée entrée en paramètre.
J'ai un truc qui donne ca:
La structure des données ressemble à ca:
quelqu'un pourrais m'expliquer comment faire?