Bonjour, je viens de me mettre au C, et j'ai un pb avec mes tableaux

Voici ce que j'ai fait :

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
 
typedef struc t_mat
{
unsigned int dim; // la dimension du tableau
double * data;
} Tableau;
 
void alloc_tableau(unsigned int d,Tableau t)
{
assert(d>0);
t.data=malloc(d*sizeof(double));
assert(t.data!=NULL);
}
 
void affiche_tableau(Tableau t)
{
int i;
for(i=0;i<t.dim;i++)
printf("%3.5f\t",t.data[i]);
 
printf("\n");
}
 
int main()
{
Tableau t1;
alloc_tableau(3,t1);
t1.data[0]=1; t1.data[1]=2; t1.data[2]=3;
affiche_tableau(t1);
 
return 0;
}
et j'obtiens une erreur de segmentation. Le problème vient de la fonction affiche_tableau.


Autre question : plutôt que de faire t1.data[0]=1; etc, y a-t-il un moyen pour faire plutôt t1[0]=1; ce qui et plus simple ?

Merci beaucoup.