Violation d 'accés, pointeur & structure
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:
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:
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 :
Code:
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 strcutres.h
Code:
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 |
Le fichier strucutres.c
Code:
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;
} |
Si vous pouvez em mettre sur une piste ^^
Cordialement.