Ereur de segmentation c urgent aidez moi SVP

rimounatn Messages postés 107 Statut Membre -  
rimounatn Messages postés 107 Statut Membre -
Bonjour,
je probleme c'est qu'il m'affiche erreur de segmentation à cause de l'appel à ma fonction gain.
aidez moi SVP à trouver l'erreur, voici mon code:
#include<stdio.h>
#include<stdlib.h>
int gain ( int a, int b, int ** matrice, int taille_matrice)
{
           int g= matrice [a][b]+matrice[b][a]; //que dois je mettre ici pourque ca fonctionne??
           return g;
}

int main()
{

int ** matrice;
int i,j, nb, resG;
nb=10;
// Allocation dynamique :
matrice =(int**)malloc( nb* sizeof(int*));
for(i=0; i<nb,i++)
{
    matrice[i]=(int*)malloc (nb*sizeof(int));
}
// remplissage de la matrice
for (i=0;i<nb;i++)
{
      for (j=0;j<nb;j++)
      {
            matrice[i][i]=i*j
       }
}
//affichage de la matrice
for (i=0;i<nb;i++)
{
       for (j=0;j<nb;j++)
      {
            printf("%d,%d", matrice[i][i]);
       }
       printf("\n");
}
// saisie
printf("donner 1premier entier");
scanf ("%d",&a);
printf("donner le 2eme entier");
scanf("%d",&b);
// appel fonction gain
resG=gain (a,b, matrice, nb); // mon probleme ici
printf("voici le resultat obtenu: %d\n": resG);
}

voici mon programme simplifié j'espere que vous pouvez m'aider c urgent SVP.

2 réponses

kilian Messages postés 8854 Statut Modérateur 1 526
 
Salut,

C'est normal que tu ne remplisses et n'affiche que la diagonale de ta matrice?
(Tu parcoures [i][i], tu es sûr que c'est pas [i][j] ?)

Ceci dit ce n'est pas ça qui provoque l'erreur de segmentation.
Etant donné que l'allocation me semble bonne, ce qui peut faire une erreur de segmentation,
c'est le fait que a ou b soient supérieurs à nb.

Au fait, a et b ne sont pas déclarés?
0
rimounatn Messages postés 107 Statut Membre 15
 
MERCIIII kilian de m'avoir repondre, c'est j'ai trouvé l'erreur en faite ce n'est pas celui la mon programme mais ca ressemble mon probleme c'est que je fé free avant l'appel de ma fonction :) franchement c'est une erreur de fou :D, ds tt les cas thx .
0