Bonjour à tous,
Je rencontre un petit problème, la compilation est ok, mais à l'éxecution la console se fige quelques instants et se ferme... Avec un petit debugger ( sur devc++), j'obtient un jolie "Une violation d 'accés (erreur de segmentation)".
En gros :
Le programme plante a chaque fois que je créer un pointeur vers une variable de structure Sommet ET que j'essai d'accéder à un de ses champs
Exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 //se situe dans le main Sommet * S; S->nbArcs = 0; //<== ca plante !
Par contre, si je créer une variable locale S, ca marche.
Exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Sommet S; S.nbArcs = 0; //<== ca marche.
Je donne le main ainsi que la structure ( il y a d'autre fichier mai je ne pense qu'ils agissent sur le problème) :
Le main :
Le fichier strcutres.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #include <stdio.h> #include <stdlib.h> #include "dicoParser.h" #include "structures.h" int main() { Sommet *S; S->nbArcs = 3; S = fileParser(".\\dico.txt"); system("PAUSE"); return 0; }
Le fichier strucutres.c
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 #ifndef STRUCTURES_H #define STRUCTURES_H #include <stdio.h> #include <stdlib.h> typedef struct sommet { char lettre; struct sommet ** arcs; //tableau de pointeur de sommets int nbArcs; char * motType; //"Nom", "Adj", "Ver" char * motBase; //forme de base du mot }Sommet; Sommet * nouvSommet(); void addArc(Sommet * s); #endif // end ifndef STRUCTURES_H
Si vous pouvez em mettre sur une piste ^^
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 #include "structures.h" Sommet * nouvSommet() { Sommet * S; S->lettre = (char)NULL; S->arcs = NULL; //tableau de pointeur de sommets S->nbArcs = 0; S->motType = NULL; S->motBase = NULL; return S; } void addArc(Sommet * s) { struct sommet ** arcs; }
Cordialement.
Partager