Help! char** j'deviens dingue :s

cs_briareos Messages postés 3 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 23 avril 2005 - 23 avril 2005 à 16:37
cs_briareos Messages postés 3 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 23 avril 2005 - 23 avril 2005 à 20:05
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!



char** listNoms;
char nom[20];



fscanf(fp,"Nombre de noms: %d\n",&numNoms);
listNoms=(char**)malloc(numNoms*sizeof(char*));



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


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

3 réponses

vangeurmasker Messages postés 99 Date d'inscription mercredi 12 mai 2004 Statut Membre Dernière intervention 29 mars 2006
23 avril 2005 à 19:12
salut

Dans ta premiere fonction je ne vois pas l'interet d'utiliser la
variable nom si t'aloue 20 char systematiquement pour listNom[i].
Utilise la fonction int strlen(char * chaine); dispo dans string.h.

Pour l'erreur de compilation tente en déclarant void afficherNom(char * nom);

Indique nous aussi l'erreur que te retourne le compilo.
0
cs_briareos Messages postés 3 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 23 avril 2005
23 avril 2005 à 19:30
pour le changement de type dans le parametre de afficherNom , j'ai tenté char* mais le probleme reste le meme, pareil en ce qui concerne le malloc que j'ai changé comme tu l'indique.
L'erreur que me sort visual studio est Access Violation au niveau de mon afficherNom
0
cs_briareos Messages postés 3 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 23 avril 2005
23 avril 2005 à 20:05
probleme resolu :)
il fallait que j'enleve les guillemets dans mon fichier texte
0
Rejoignez-nous