Bonjour, j'ai un pb de malloc. Voici tout d'abord ce que j'ai fait :
Dans le main je fais la chose 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 typedef struct t_mat { int dim; double * data; } Tableau; void alloc_Tableau(Tableau *t,unsigned int dim_) { assert(dim_>0); t->dim=dim_; t->data=malloc(dim_*sizeof(double)); assert(t->data!=NULL); int i; for(i=0;i<t->dim;i++) t->data[i]=0.; return ; } void free_Tableau(Tableau * t) { free(t->data); t->data=NULL; return ; } void affiche_Tableau(Tableau t) { if(t.data==NULL) printf("\nTableau inexistant\n"); else { int i; for(i=0;i<t.dim;i++) printf("%3.5g\t",t.data[i]); printf("\n"); } return; }
et là j'obtiens bien la sortie
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Tableau t1; alloc_Tableau(&t1,3); affiche_Tableau(t1); free_Tableau(&t1);
Maintenant si je fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 0 0 0
et bien j'ai une erreur de segmentation. Savez-vous pourquoi ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Tableau * t2 alloc_Tableau(t2,3);
Merci beaucoup.
Partager