2017-10-05 3 views
1
int main(int argc, char **argv) {  
    int n, m, number, array[m][m]; 
    scanf("%d %d", &n, &m); 
    for (int k = 0; k < m; ++k) { 
     for (int i = 0; i < m; ++i) { 
      scanf("%d ", &number); 
      array[k][i] = number; 
      printf("%d ", array[k][i]); 
     } 
     printf("\n"); 
    } 
    printf("\n"); 

    for (int k = 0; k < m; ++k) { 
     for (int i = 0; i < m; ++i) { 
      printf("%d k=%di=%d\n", array[k][i], k, i); 
     } 
     printf("\n"); 
    } 
} 

Je continue à obtenir l'erreur:C - Erreur bus (core dumped) - erreur Matrix

Bus error (core dumped) 

Nous avons une m matrice * m, dans lequel nous stockons les valeurs données sur l'entrée des utilisateurs. Ensuite, nous imprimons le tableau à l'entrée des utilisateurs. Je le fais dans un autre programme et c'est là que mon programme va planter, à cause de ce code.

Est-ce que quelqu'un sait que l'erreur de bus se produit?

+4

'array [m] [m]' 'avec m' étant non initialisée? –

+0

quel est le but de lire 'n'? – chqrlie

+0

Cela a été copié à partir d'un autre code, c'est la partie où il se bloque, dans mon code orignal n est utilisé. – MilkyMan

Répondre

4

Vous déclarez un tableau de longueur variable dans lequel la dimension est basée sur une valeur non initialisée. Déclaration de tableau remettre à plus tard après avoir lu dans m devrait résoudre le problème:

int n,m, number; 
scanf("%d %d", &n, &m); 
int array[m][m]; 
+0

Merci beaucoup! – MilkyMan

+0

De rien. Si cela vous a aidé, n'hésitez pas à accepter la réponse :-) –