布尔二维数组初始化错误C ++

时间:2013-01-15 19:50:40

标签: c++

该程序假设采用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;
}

1 个答案:

答案 0 :(得分:3)

对于大小为N的数组,数组索引从0到N-1。您正在编写超出数组边界的内容。你的循环应该像

for(int i = 0; i < size; ++i) { ..... }