IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

segmentation fault erreur


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 83
    Par défaut segmentation fault erreur
    bonjour,
    j'essaye en c de faire une lecture d'un fichier de ce type:
    #chaine1
    4
    #chaine2
    1 : 5, 2, 4
    2 : 8,7
    avec le code suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    main(){
    	FILE *fp;
    	char s[TAILLE_MAX],s1[TAILLE_MAX],s2[TAILLE_MAX];
    	char op1=':';
    	char* test;
    	char res[50];
    	int nbMaxSommets,sommet,NSommet,voisin,NArret;
     
    	fp=fopen(nomFichier,"rt");
    	while(fp!=NULL) 
    	{
    		printf("impossible de lire le fichier %s,ressaye svp:\n",nomFichier);
    		//printf("Resaisir le nom du fichier pour lire le graphe\n");
    		scanf("%s", nomFichier);
    		fp=fopen(nomFichier,"rt");
    	}
    	fgets(s,TAILLE_MAX,fp);
    	fscanf(fp,"%d ",&nbMaxSommets);
    	creer_graphe(nbMaxSommets,g);
     
    	NSommet=0;
    	NArret=0;
    	fgets(s1,TAILLE_MAX,fp);
    	while(!feof(fp))
    	{ 
    		if(fgets(s2,TAILLE_MAX,fp)!=NULL)
    		{
    			test=strchr(s2,op1);
    			strncpy(res,s2,strlen(s2)-strlen(test));
    			sommet=atoi(res);
     
    			insert_in_head(-1,(g->listesAdjacences+sommet-1));
     
    			char* token = strtok( test, ",: \n");
    			while( token != NULL)
    			{
    				voisin=atoi(token);
     
    				insert_in_head(voisin,(g->listesAdjacences+sommet-1));
     
    				NArret++;
    				token = strtok( NULL, ",-|");
    			}
    			NSommet++;	
    		}
     
    	}
    	fclose(fp);
     
    	printf("----Le Graphe est bien creer----\n");
     
    }
    ca marche apres fini la lecture il ajoute segmentation default,je sais pas prk?
    merci d'avane.

  2. #2
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Il est défini où "nomFichier"? Poste un code qui compile.

  3. #3
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 143
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strncpy(res,s2,strlen(s2)-strlen(test));
    !es-tu sûr qu'ici : trlen(s2)-strlen(test) ne sera jamais supérieur à 50 ?

    Nous ne connaissons pas TOUT de ton programme et certains éléments nous manque pour pouvoir t'aider, en outre TAILLE_MAX...

    Si ton TAILLE_MAX est de 500 et que s2 est plein alors que test est totalement vide tu risque d'essayer de copier un peu de trop dans ton buffer :s

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/01/2008, 23h28
  2. erreur "Segmentation Fault" lors de l'import d'un dump
    Par farenheiit dans le forum Import/Export
    Réponses: 13
    Dernier message: 28/11/2007, 10h17
  3. Réponses: 2
    Dernier message: 08/04/2007, 17h23
  4. [erreur] Segmentation fault
    Par fveysseire dans le forum C
    Réponses: 11
    Dernier message: 15/06/2006, 14h44
  5. [ERREUR D'EXECUTION] Segmentation Fault
    Par CestPasMoi dans le forum C++
    Réponses: 3
    Dernier message: 26/11/2005, 17h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo