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

  FORUM HardWare.fr
  Programmation
  C

  Help ! probleme de char* en C

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Help ! probleme de char* en C

n°1057853
bria
Fan de Georges Abitbol
Posté le 23-04-2005 à 16:34:05  profilanswer
 

Salut à tous , voila j'ai un enorme probleme de char* depuis quelques temps et vu ma totale incompetence en C je trouve pas la solution , si quelqu'un peut m'aider!
 
 

Code :
  1. char** listNoms;
  2. char nom[20];
  3. fscanf(fp,"Nombre de noms: %d\n",&numNoms);
  4. listNoms=(char**)malloc(numNoms*sizeof(char*));
  5. for(i=0;i<numNoms;i++){
  6.  fscanf(fp,"NOM :%s\n",nom);
  7.  listNoms[i]=(char*)malloc(sizeof(char)*20);
  8.  strcpy(listNoms[i],nom);
  9. }


 
Voila mon code, en gros il doit recuperer a partir d'un fichier texte une liste de noms.
Mon problème est que lorsque je fais un printf de mon tableau listNoms ca affiche bien tous mes noms, donc ce bout de code est sensé fonctionner, mais quand je veux reutiliser ma listeNom plus tard dans une autre fonction, ca ne marche pas.
 
Par exemple si je fais :
 
afficherNom(listNoms[0]);
 
avec cette fonction definie comme void afficherNom(const char * nom);
 
mon compilateur bug. Si quelqu'un connait la solution parce que la je suis en train de peter un cable ^^.
 
Merci
 
 
 

mood
Publicité
Posté le 23-04-2005 à 16:34:05  profilanswer
 

n°1057960
Emmanuel D​elahaye
C is a sharp tool
Posté le 23-04-2005 à 19:36:29  profilanswer
 

bria a écrit :

Salut à tous , voila j'ai un enorme probleme de char* depuis quelques temps et vu ma totale incompetence en C je trouve pas la solution , si quelqu'un peut m'aider!


L'incompétence, ça se guérit. Il suffit de s'y mettre progressivement et efficacement. Il y a des livres et des tutoriels pour ça...

Citation :


<...>
Voila mon code,


Ne compile pas. C'est ça le bug ?

Citation :

mon compilateur bug.


"Pas assez précis mon fils". Quel bug ?
 

  • Il faut poster du code complet mais réduit au minimum qui montre le problème
  • Si nécessaire (comme ici), il faut poster un exemple de fichier texte
  • Préciser la nature du problème (compilation, exécution...)
  • Bref on a beau être des supers gourous, on est pas encore des magiciens...


Message édité par Emmanuel Delahaye le 23-04-2005 à 19:38:29

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1057969
bria
Fan de Georges Abitbol
Posté le 23-04-2005 à 19:40:36  profilanswer
 

Oups désolé c'est vrai que ca manque de précision.
L'erreur est que ca compile pas et que j'ai une erreur de type Access Violation lors de mon afficherNom.
 
Mon fichier texte :
 
NOM "alain"
NOM "robert"
...

n°1057973
KangOl
Profil : pointeur
Posté le 23-04-2005 à 19:43:08  profilanswer
 

désolé, on a pas fait bac V nous :o


---------------
Nos estans firs di nosse pitite patreye...
n°1057976
bria
Fan de Georges Abitbol
Posté le 23-04-2005 à 19:49:17  profilanswer
 

Bon laisser tomber c'est reglé

n°1057986
Sve@r
Posté le 23-04-2005 à 20:00:33  profilanswer
 

bria a écrit :


for(i=0;i<numNoms;i++){  
        fscanf(fp,"NOM :%s\n",nom);  
        listNoms[i]=(char*)malloc(sizeof(char)*20);  
        strcpy(listNoms[i],nom);  
    }




 
On peut se passer de la variable "nom"

for(i=0;i<numNoms;i++){  
        listNoms[i]=(char*)malloc(sizeof(char)*20);  
        fscanf(fp,"NOM :%s\n",listNoms[i]);  
    }



---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1057989
KangOl
Profil : pointeur
Posté le 23-04-2005 à 20:03:20  profilanswer
 

for(i=0;i<numNoms;i++){  
        listNoms[i]=(char*)malloc(sizeof(char)*20);  
        if(listNoms[i] != NULL) fscanf(fp,"NOM :%s\n",listNoms[i]);  
    }


[:aloy]


---------------
Nos estans firs di nosse pitite patreye...
n°1058029
Emmanuel D​elahaye
C is a sharp tool
Posté le 23-04-2005 à 20:36:03  profilanswer
 

Sve@r a écrit :

On peut se passer de la variable "nom"

for(i=0;i<numNoms;i++){  
        listNoms[i]=(char*)malloc(sizeof(char)*20);  
        fscanf(fp,"NOM :%s\n",listNoms[i]);  
    }



Sauf que si le nom lu fait plus de 19 caractères, c'est la mort...


Message édité par Emmanuel Delahaye le 23-04-2005 à 20:36:28

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1058030
Emmanuel D​elahaye
C is a sharp tool
Posté le 23-04-2005 à 20:39:37  profilanswer
 

bria a écrit :

Oups désolé c'est vrai que ca manque de précision.
L'erreur est que ca compile pas et que j'ai une erreur de type Access Violation lors de mon afficherNom.


Gni ? Ca ne compile pas et tu arrives à éxécuter ? T'es fort toi!

Citation :

Mon fichier texte :
 
NOM "alain"
NOM "robert"


char nom[20];
<...>
    fscanf(fp,"NOM :%s\n",nom);



Y'a rien qui te choque là ? Il faut contrôler si la conversion s'est bien faite. Et que se passe-t-il si le nom lu fait plus de 19 caractères ?


Message édité par Emmanuel Delahaye le 23-04-2005 à 22:39:41

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1058204
Sve@r
Posté le 23-04-2005 à 22:35:07  profilanswer
 

Emmanuel Delahaye a écrit :

Sauf que si le nom lu fait plus de 19 caractères, c'est la mort...


 
J'ai pas voulu écrire un code anti bug, j'ai juste voulu écrire le même programme que proposé au début mais en y enlevant les variables inutiles...
 
J'ai admis d'emblée que le fichier lu ne contenait que des noms de moins de 20 car...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

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

  Help ! probleme de char* en C

 

Sujets relatifs
probleme avec un objet reader [résolu]php probleme heure
Probleme !!! site internet[HELP] Creation interface HTML pour un CD
[VB] Problème de décallage dans une liste...Probleme portage mysql -> oracle (JDBC)
[VHDL] problème de simulation avec Quartus IIprobleme : concatenation + ftp + date
probleme de prog[XSL] Problème de base !
Plus de sujets relatifs à : Help ! probleme de char* en C


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