C ++ Array意外错误

时间:2013-01-23 14:24:11

标签: c++ arrays

我想制作一个简单的程序,显示一个16'X'的正方形,你可以改变特定的坐标。 一切都结束了,我没有得到任何bug报道,但在程序中事情是非常奇怪的。 我应该得到的很容易

 XXXX                              
 XXXX
 XXXX
 XXXX

如果我将1,1改为A,我应该有这个

 AXXX
 XXXX
 XXXX
 XXXX

但是我在运行程序时看到的是:

 XXXX
 XXXX
 XXXX
 @

第四行是什么?在第一个地方有一个笑脸(我使用了@),其余的是空的。 当我将1,1改为任何东西时,3,4也会改变。 其他一切正常。 如果我尝试在第四行更改某些内容,程序会崩溃。 如果你想自己测试我可以上传.exe     #include

using namespace std;

int main()
{
    for (;;) {
    int eingabe1;
    int eingabe2;
    char neueingabe;
    char array[4][4];
    array[1][1] = 'X';
    array[1][2] = 'X';
    array[1][3] = 'X';
    array[1][4] = 'X';
    array[2][1] = 'X';
    array[2][2] = 'X';
    array[2][3] = 'X';
    array[2][4] = 'X';
    array[3][1] = 'X';
    array[3][2] = 'X';   
    array[3][3] = 'X';
    array[3][4] = 'X';
    array[4][1] = 'X';
    array[4][2] = 'X';
    array[4][3] = 'X';
    array[4][4] = 'X';
    cout << "koordinaten eingeben" << endl; 
    cin >> eingabe1;
    cin >> eingabe2;
    cout << array[eingabe1][eingabe2] << endl;
    cout << "neueingabe eingeben" << endl;
    cin >> neueingabe;
    array[eingabe1][eingabe2] = neueingabe;
    cout << array[eingabe1][eingabe2]<< endl;
    }
    return 0;
}

我希望你能帮忙

2 个答案:

答案 0 :(得分:3)

你写的是你的阵营!

C / C ++ / C#/ Java和大多数其他语言的数组以0开始编号。

所以

int arr[4];
// you have:
arr[0]=1;
arr[1]=2;
arr[2]=3;
arr[3]=4;
//arr[4]= A REALLY BIG ERROR;

答案 1 :(得分:1)

将指数设为0.因此最大指数为3,3;最低的是0,0。访问其他值会导致随机行为 - 在最好的情况下会导致程序崩溃。