Segmentation fault dans mon premier code
Bonjour,
je débute en C et j'ai essayé d'afficher le triangle de Pascal.
Je ne comprends pas pourquoi j'ai cette erreur de segmentation à la ligne 59 (dans le printf d'après le debugger); j'ai essayé en changeant ma fonction triangle en void ou en enlevant le return, sans réussite. Je ne sais pas si j'appelle mal ma fonction ou si j'initialise mal mes tableaux. A moins que je fasse le free trop tôt ?
Ca doit être une erreur banale de débutant, mais je sèche.
Merci d'avance de vos réponses.
Le code:
Code:
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| #include <stdio.h>
#include <stdlib.h>
int triangle (int n, int **c);
int factorielle (int nbr);
int factorielle (int nbr)
{
int i;
int resultat = 1;
for (i=2 ; i<=nbr ; i++)
resultat *= i;
return resultat;
}
int triangle (int n, int **c)
{
int i,j;
c = malloc( n * sizeof(int *));
for (i=0; i<n; i++)
{
c[i]= malloc( n * sizeof(int *));
}
for (i=0; i<n;i++)
for (j=0; j<n;j++)
c[i][j]=0;
for (i=0; i<n;i++)
for (j=0; j<=i;j++)
{c[i][j]=factorielle(i) * factorielle(j) / factorielle(i-j);
//return c[i][j];
}
for (i=0; i<n; i++)
free(c[i]);
}
int main()
{
int i,j,n;
int **c;
i=0;
j=0;
n=0;
c=0;
printf("Entrez n\n");
scanf("%d",&n);
triangle(n,c);
for (i=0; i<n; i++)
{ printf("\n");
for (j=0; j<=i; j++)
{ printf("%d",c[i][j]);
}
}
return 0;
} |