2017-01-26 1 views
0

J'utilise C++ 11 pour écrire un code simple, mais j'ai rencontré l'erreur Command terminated si j'ai mis des valeurs spécifiques.`Command terminé 'en utilisant` cin`

Le code est:

#include <iostream> 
using namespace std; 

int main(){ 
    int r, c; 
    cin >> r >> c; 

    int **Data = new int*[r+2](); 
    for(int i=0; i < c+2; i++){ 
     Data[i] = new int[c+2](); 
    } 

    // Input Data 
    for(int n=1; n<r+1; n++){ 
     for(int m=1; m<c+1; m++){ 
      cin >> Data[n][m]; 
     } 
    } 
    return 0; 
} 

Ce code fonctionne très bien avec la plupart des intrants tels que:

clang++ -std=c++11 -stdlib=libc++ test.cpp -o test.out 
./test.out 
2 2 
1 2 
3 4 

Cependant, si je mets des valeurs spécifiques, elle se heurte:

clang++ -std=c++11 -stdlib=libc++ test2.cpp -o test2.out 
./test2.out 
5 1 
1 
2 
3 

Command terminated 

Pourquoi cela arrive-t-il ??

Répondre

3

Vous utilisez la mauvaise borne supérieure ici:

for(int i=0; i < c+2; i++){ 

Il devrait être:

for(int i=0; i < r+2; i++){