IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Erreur de segmentation


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 122
    Points : 54
    Points
    54
    Par défaut Erreur de segmentation
    salut

    Quand j'éxécute le code suivant j'ai une erreur de segmentation et je n'arrive pas à comprendre d'ou elle 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
    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <math.h>
    #include <ctype.h>
     
    int SizeMat() {
     int li;
    char buffer[10];
     
      printf("\n************************************************************\n");
      printf("entré le nombres de lignes et de collones de la matrice carré\n");
      fgets(buffer, sizeof(buffer), stdin); 
      li=strtol (buffer, NULL, 10);
      return li;
     
    }
     
     int Remplissage(int **A, int **B,int c)
      {
        int i=0; int j=0; char buffer[10];int li=0; 
     
     printf("Enter les elements de la premiere matrice\n");
       for(i=0;i<c;i++)
        {
          for(j=0;j<c;j++)
            {
                 printf("Enter la valeur de A[%d][%d] ",i,j);
                 fgets(buffer, sizeof(buffer), stdin);
                 li=strtol (buffer, NULL, 10);
                 A[i][j]=li; 
                 printf("\n");
            }
     
        }
     
    printf("\n deuxième matrice");
          for (i=0;i<c;i++)
              {
                 for(j=0;j<c;j++)
                   {
                           printf("Enter la valeur de B[%d][%d] ",i,j);
                           fgets(buffer, sizeof buffer, stdin);
                           li=strtol (buffer, NULL, 10);
                           B[i][j]=li; 
                           printf("\n");
                   }
              }
    return 0;
    }
     
    int main(int argc, char *argv[])
    {
    int **M1;
    int **M2;
    //int **Re; 
     
     int s=SizeMat();
    printf("le nombre :%d\n",s);
     
    M1=(int **) malloc(s*sizeof(int*));
    if (M1 == NULL )
           {  
            fprintf(stderr,"Allocation impossible");
            exit(EXIT_FAILURE);
           }
     
    M2=(int **) malloc(s*sizeof(int*));
    if ( M2 == NULL )
           {  
            fprintf(stderr,"Allocation impossible");
            exit(EXIT_FAILURE);
           }
     
     Remplissage(M1,M2,s);
     
     
    return 0;
     }
    merci de votre aide

  2. #2
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 076
    Points : 2 328
    Points
    2 328
    Par défaut
    Vu comme ca, je ne sais pas (plutot en fait, je n'ai pas envie de chercher).

    Quelles est l'erreur retourné par le compilateur ? Sur quelles ligne ?

    Tu nous dis que tu as une SIGSEV, comment le sais tu ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 122
    Points : 54
    Points
    54
    Par défaut
    salut

    dans la fonction de remplissage quand je rentre la première valeurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      printf("Enter la valeur de A[%d][%d] ",i,j);
    Exemple:

    Enter la valeur de A[0][0]
    > 4
    Erreur de segmentation
    voila

  4. #4
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 076
    Points : 2 328
    Points
    2 328
    Par défaut
    Erreur classique, tu n'as pas allouer tout ton tableau :

    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
     
    M1=(int **) malloc(s*sizeof(int*));
    if (M1 == NULL )
           {  
            fprintf(stderr,"Allocation impossible");
            exit(EXIT_FAILURE);
           }
     
    /* Manque la deuxieme allocation */
    int i;
    for (i=0 ; i<s ; i++)
        M1[i] =(int *) malloc(t*sizeof(int));
     
    /* 
        s = nbLigne
        t = nbColonne
     */
    De meme pour M2.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 122
    Points : 54
    Points
    54
    Par défaut
    ok merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreurs de segmentation !
    Par anti-conformiste dans le forum Applications et environnements graphiques
    Réponses: 16
    Dernier message: 18/10/2005, 11h11
  2. Erreur de segmentation
    Par Trunks dans le forum C
    Réponses: 3
    Dernier message: 06/10/2005, 18h28
  3. Erreur de segmentation (Inconnue)
    Par Dark-Meteor dans le forum C
    Réponses: 5
    Dernier message: 08/09/2005, 13h42
  4. [Dev-C++] Erreur de segmentation...
    Par sas dans le forum Dev-C++
    Réponses: 11
    Dernier message: 26/03/2005, 14h25
  5. erreur de segmentation
    Par transistor49 dans le forum C++
    Réponses: 10
    Dernier message: 15/03/2005, 11h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo