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

  FORUM HardWare.fr
  Programmation
  C++

  un pb avec mes realloc.. mais quoi ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

un pb avec mes realloc.. mais quoi ?

n°403599
swich
snps
Posté le 21-05-2003 à 22:54:21  profilanswer
 

voila je fais ca :  

Code :
  1. char **listeU;
  2. char **liste_undef; 
  3. int nbUndef;
  4. int nbU;
  5. listeU pointe sur des chaines
  6. liste_undef aussi.
  7. nbU : nombre d'elements dans listeU
  8. nbUndef : nombre d'elements dans liste_undef


 
en gros, je veux faire ca :  
pour chauqe element de listeU, je regarde s'ils sont presents dans un tableaux de pointeur (listeT, qui contient nbT elements)
s'il ne sont pas dedans, allors j'ajoute le nom de l'element dans le tableau liste_undef et j'incremente nbUndef de 1.
et donc pour avoir un tableau toujours a la bonne taille, je fais un realloc a chaque fois que je veux ajouter un element ds liste_undef.
 
 
si je fais ca, j'ai une segmentation faults, alors que si j'alloue directement a ce tableau une taille (je suis sur qu'on ne peut pas la depasser)ca marche ss pb..
bizarre non ?
 
 
 

Code :
  1. int i;
  2.   //si je fais ca ca fonctione
  3.   liste_undef = realloc(liste_undef, (nbU+1)*sizeof(char));
  4.  
  5.   for (i=0;i<nbU;i++) {
  6.    
  7.     if  (appartient(listeU[i],listeT,nbT) != 0)  { 
  8.      
  9.       if(nbocc(listeU[i],liste_undef,nbUndef)!=1)
  10. { printf("undefined symbol : %s \n",listeU[i]);
  11. // par contre si je fais ca a la place, j'ai une erreur de segmentation
  12. liste_undef = realloc(liste_undef, (nbUndef+1)* sizeof(char));
  13. liste_undef[nbUndef]= malloc((int) (strlen( listeU[i] )+1)*sizeof(char)) ;
  14. strcpy(liste_undef[nbUndef],listeU[i]);
  15. nbUndef++;
  16. }
  17.     }
  18.   }
  19. }


 

mood
Publicité
Posté le 21-05-2003 à 22:54:21  profilanswer
 

n°403637
Taz
bisounours-codeur
Posté le 21-05-2003 à 23:13:58  profilanswer
 

realloc(liste_undef, (nbU+1)*sizeof(char));
 
est ce que liste_undef a une valeur valide?
(nbU+1)*sizeof(char) ça serait pas de char*?

n°403661
swich
snps
Posté le 21-05-2003 à 23:27:09  profilanswer
 

oe bien vu :)
(nbU+1)*sizeof(char*)  
 
 :fou:  
merci bien :)
 
 


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

  un pb avec mes realloc.. mais quoi ?

 

Sujets relatifs
C fonction malloc et realloc, je comprend pas tout[C] Un petit pb de realloc et de malloc :
Plus de sujets relatifs à : un pb avec mes realloc.. mais quoi ?


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