2017-01-26 2 views
0

Я использую C++ 11 для написания простого кода, но столкнулся с ошибкой Command terminated, если я поместил определенные значения.`Команда завершена` при использовании` cin`

Код:

#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; 
} 

Этот код прекрасно работает с большинством входов, таких как:

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

Однако, если я ставлю конкретные значения, то столкновения:

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

Command terminated 

Почему это происходит?

ответ

3

Вы используете неправильный верхняя граница здесь:

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

Оно должно быть:

for(int i=0; i < r+2; i++){ 
Смежные вопросы