begin process at 2012 05 29 07:42:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Maths

 > 

ListeChaines et pointeur void


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

ListeChaines et pointeur void

lundi 27 août 2007 à 02:56:34 | ListeChaines et pointeur void

xtremejames183

Voil le topo:

Une liste chainees

typedef struct list_st
{
    void   *data;
    struct list_st   *next,
}List;

et une fonction AddData permettant d'ajouter des donnes a la fin de la list

void AddData(List   **node,void   *data)
{
    List   *cur = *node
   
cur->data = data ;
cur->next = *node;
*node = cur;
}


voila le code marche impec si je veux ajouter des types primitives (int ,char..)
AddData(&list,(int   *)6);
AddData(&List,(char *)"hello");

mais voila quand je veux ajouter une structure qui renferment plusieues valeur :
typede struct test
{
char   *key,*value;
int code;
}Test;

AddData(&list,(void *)Test);

l'insertion est OK mais quand je veux acceder a la structure inserrer precedemment dans la liste j'obtient un erreur genre BAD-POINTER refernce pendant le run-time et autre conneries...

Ma question est :
Comment puis-je inserrer une structure dans un liste chaines et acceder apres a la structure inserrer avec une fonction de comparaison genre strcmp(list->key,data->key)?

dois-je utiliser memcpy pour copierbytes-per-bytes ou ...

A Vos Les Studios =>

lundi 27 août 2007 à 11:20:33 | Re : ListeChaines et pointeur void

juju12

Y a peut-être un problème de portée, ça serait bien de mettre tout le code.

lundi 27 août 2007 à 11:47:48 | Re : ListeChaines et pointeur void

BruNews

Administrateur CodeS-SourceS

AddData(&list, (int*)6);
C'est quoi ce cirque, mettre adresse 6 ???

cur->data = data;
tu init le POINTEUR data avec un 'int' sans alloc, mystique.

ciao...
BruNews, MVP VC++

jeudi 30 août 2007 à 14:27:47 | Re : ListeChaines et pointeur void

rt15

Membre Club Administrateur CodeS-SourceS
Salut,

AddData(&list,(void *)Test);

Ca, ça ne compilera pas vu que Test est un type.Je suppose que tu voulais dire :

Test monTest;
AddData(&list,(void *)monTest);

Mais là, que fais tu ? Tu convertis une structure monTest en void *...
Je crois que tu voulais faire ça plutôt : mettre en place l'adresse de ta structure dans ta liste chaînée:

Test monTest;
AddData(&list,(void *)&monTest);

Par contre, attention à ce que la structure ne soit pas détruite avant ta liste chaînée !



Cette discussion est classée dans : data, void, node, list, adddata


Répondre à ce message

Sujets en rapport avec ce message

probleme liste [ par bob82fr ] hi,j'ai un big probleme, j'ai le code suivant:#include "list.h"void list_init(LIST *l, int (*cmp)()){ l->cmp = cmp; l->first = (LIST_NODE*)0; l->len = Classe contenant vecteur template [ par val3113 ] Bonjour,Je suis sur un programme cpp sous linux. J'ai créé une classe template "Vecteur" qui est censée pouvoir recevoir plusieurs types dont des clas Erreur Template [ par yodasoft ] Bonjour , je suis nouveau sur ce site:J'ai une erreur sous Visual C++Il me met l'erreur suivante :guichet.obj : error LNK2001: unresolved external sym allegro data file [ par mat74 ] salut a tssa fait un ptit momment que j'essaie d'utiliser les datafile mais sa ne marche pasje creer le data file avec grabber.exeensuite j'enregistre Pb d'affichage avec des listes doublement chianées [ par Orezza ] Bonjour a tous,voila je dois faire un petit analyseur syntaxique, en ce moment j'en suis au prémice de mon code et j'ai dejà un Big problem d'affichag encodage avec pgp [ par sylvainmarechal ] Bonjour,Je cherche à ajouter des fonctionalités d'encryptage à une application que je développe actuellement et qui doit fonctionner sous windows et l PB de compilation [ par Steph3457 ] Steph3457j'ai un petit pb lors de la compilation de mon programme mais je c vraimen pa commen le resoudresi vous pouviez m'aidé SVP!!!!!le message d'e Tri d'objets avec qsort. [ par Tazrael ] Hum, voilà je souhaite trier un tableau d'objets avec qsort. Ici les objets sont des scores, et on y accède via un accesseur. Le problème c'est que la Plugins WinAMP dans Visual Basic (toutes catégories de plugins) via un ActiveX en C [ par PaTaTe ] Salut tout le monde ;)J'avais déjà posé la question mais sans réponse alors je recommence.Je cherche une (ou plusieurs) personne(s) étant prete à m'ai


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,920 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales