C++数组意外错误

标签 c++ arrays

<分区>

我想制作一个简单的程序,显示一个 16'X' 的正方形,并且您可以更改特定坐标。 一切都完成了,我没有收到任何错误报告,但在程序中,事情很奇怪。 我应该得到的很容易

 XXXX                              
 XXXX
 XXXX
 XXXX

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

 AXXX
 XXXX
 XXXX
 XXXX

但是当我运行程序时我看到的是这样的:

 XXXX
 XXXX
 XXXX
 @

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

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

希望你能帮到你

最佳答案

您正在写入数组!

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;

关于C++数组意外错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14481990/

相关文章:

c++ - 如何抑制 OpenCV 错误信息

c++ - 空参数包的模板特化

c - 在任何 C 库中是否已经有与此类似的功能?

javascript - 使用原型(prototype)时如何引用父对象?

c# - 整数列表中的查找模式

javascript - 如何将元素数组呈现为 <List> 中的 <Dialog>

c++ - 如何通过复制从函数返回引用

c++ - box2d 联系监听器中的语义问题

c++ - strcpy 将字符串转换为更大的 char 数组会导致内存泄漏吗?

c++ - 数组索引分配时程序崩溃