Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2462 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Porbleme avec des string dans une struct....

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Porbleme avec des string dans une struct....

n°1483173
ouvaton
Posté le 28-11-2006 à 17:05:42  profilanswer
 

Bonojur bonjour,
 alors voila j'ai défini une structure de iste doublement chainée qui me permet de traiter des fichiers selon trois critères : le numéro d'inode , le nombre de liens durs et symboliques et le chemin vers ce fichier, voila le code de la struct :
 

Code :
  1. typedef struct listeFichier{
  2. int numInode;
  3. int nbLiens;
  4. string chemin;
  5. struct listeFichier *suivant;
  6. struct listeFichier *precedent;
  7. };


 
j'ai défini une fonction qui prend trois parametres en arguments permettant d'ajouter un fichier a la liste :
 

Code :
  1. void ajoutFichier(int numI,int nbL,string chemF)
  2. {if(tete==NULL) //cas pour lequel la liste est vide
  3.  {
  4.  struct listeFichier *nouveau;
  5.  nouveau = (listeFichier*)malloc(sizeof(struct listeFichier));
  6.  nouveau->suivant=tete;
  7.  nouveau->precedent=NULL;
  8.  nouveau->numInode=numI;
  9.  nouveau->nbLiens=nbL;
  10.  nouveau->chemin=chemF; //probelme ici !! : erreur de segmentation
  11.  tete=nouveau;
  12.  }
  13. else //quand la liste n'est pas vide
  14.  {
  15.  struct listeFichier *nouveau;
  16.  nouveau = (listeFichier*)malloc(sizeof(struct listeFichier));
  17.  nouveau->suivant=tete;
  18.  tete->precedent=nouveau;
  19.  nouveau->precedent=NULL;
  20.  nouveau->numInode=numI;
  21.  nouveau->nbLiens=nbL;
  22.  nouveau->chemin=chemF; //probelme ici !! : erreur de segmentation
  23.  tete=nouveau;
  24.  }
  25. }


 
le probleme c'est que j'ai une erreur de segmentation quand j'affecte chemF à nouveau->cemin,
et je ne vois pas pourquoi, vous avez des idées ?

mood
Publicité
Posté le 28-11-2006 à 17:05:42  profilanswer
 

n°1483261
theshockwa​ve
I work at a firm named Koslow
Posté le 28-11-2006 à 18:02:27  profilanswer
 

normal ... string m'a tout l'air d'être une classe C++ et tu l'alloues via un malloc => pas d'appel de constructeur ... l'objet n'étant pas dans un état valide, tout ce que tu peux vouloir faire dessus conduira à des comportements indéterminés (comprendre crashs)
 
si ce n'est pas le cas, merci d'expliciter d'où sort ton symbole string.

n°1483399
jesus_chri​st
votre nouveau dieu
Posté le 28-11-2006 à 22:33:27  profilanswer
 

+1
 
nouveau = (listeFichier*)malloc(sizeof(struct listeFichier));
 
n'importe quoi... on ne peut pas mélanger C et C++ à ce niveau, on ne fait pas de malloc sur des struct utilisant la STL ou même n'importe quel type un peu complexe. D'ailleur en C++ on n'est jamais sencé faire des malloc, on fait des new.
 
nouveau = new listeFichier;
tout simplement...
 
va réviser les bases du C++ avant d'attaquer la STL. Ne crois pas que C++ c'est du C avec string à la place de char*. Ce n'est pas, mais alors pas du tout ça.

Message cité 1 fois
Message édité par jesus_christ le 28-11-2006 à 22:34:45
n°1483447
tbp
Posté le 29-11-2006 à 01:33:38  profilanswer
 

Je vous trouve bien dogmatiques.
 

Code :
  1. listeFichier *nouveau = new(malloc(sizeof(listeFichier))) listeFichier();


 
Il est clair qu'ouvaton n'a pas vraiment idée de ce qu'il fait, mais ce n'est pas une raison pour s'emballer, hein.

n°1483466
Taz
bisounours-codeur
Posté le 29-11-2006 à 08:33:32  profilanswer
 

jesus_christ a écrit :


va réviser les bases du C++ avant d'attaquer la STL.


STL et string SONT la base

n°1483748
jesus_chri​st
votre nouveau dieu
Posté le 29-11-2006 à 14:46:24  profilanswer
 

Taz a écrit :

STL et string SONT la base


pfff... faut toujours que tu trouves un truc à redire...


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

  Porbleme avec des string dans une struct....

 

Sujets relatifs
polymorphisme sur un struct en C++Char* to String C#
[résolu...enfin presq]Choix multiple pour une propriété de type string[C] Méthode replace de la classe string
s'échapper d'un while (cin>>string)...Passage d'une string C# à une std::string C++
TextField.text : le String magique ?[RESOLU] Taille maximum String et requête
superiorité de string[Résolu] [C#] String et Split
Plus de sujets relatifs à : Porbleme avec des string dans une struct....


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