Bonsoir,

Voici mon code qui provoque une erreur de segmentation et lorsque je fais tourner avec gdb et que j'essai d'accéder à s->mat[0][0] j'ai un "Cannot access memory" mais je ne vois pas d'où cela peut venir.

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
struct sol {
  double **mat;
  double a;
};
 
typedef struct sol *sol;
 
double **creerMatrice(int l, int c)
{
  double **m=malloc(l*sizeof(double*));
  for (int i=0 ; i<l ;i++) 
    { 
      m[i]=malloc(c*sizeof(double));
    }
  return m;
}
 
sol creerSol(int n, int c)
{
  sol s=malloc(sizeof(sol));
  s->mat=creerMatrice(n,c);
  s->a=0;
 
  return s;
}
 
sol test(int n, int c)
{
sol s=creerSol(n,c);
s->mat[0][0]=0; // Erreur de segmentation ici
s->mat[0][1]=1;
return s;
}

Merci d'avance.