0

このプログラムはsize、2D ブール配列内の座標である数値のペアを大量に受け取ると想定されています。座標がトリガーされるたびに、値が に切り替わりますTRUE。何らかの理由で、最後の行と最後の行の最後のスペースにエラーがあります。何か案は?

#include <iostream>
#include <fstream>
#include <string>

using namespace std;


int main(){
    const int size = 10;
    int *x = new int [size];
    int *y = new int [size];
    bool table[size][size] =  {{false}};
    for(int i = 1 ; i <= size; i++){
        cin >> x[i] >> y[i];
        if(x[i] <= size && y[i] <= size){
            table[x[i]][y[i]] = true;
        } else{
            cout << "invalid input \n";
            i--;
        }
    }


    for(int a = 1; a <= size; a++){
        for(int b= 1; b <= size; b++){
            cout << table[a][b] << " ";
        }
        cout << "\n";
    }
    return 0;
}
4

1 に答える 1

3

サイズ N の配列の場合、配列インデックスは 0 から N-1 になります。配列の境界を超えて書き込んでいます。あなたのループは次のようになるはずです

for(int i = 0; i < size; ++i) { ..... }
于 2013-01-15T19:55:31.337 に答える