字符在多维数组中复制

aaa*_*eka 5 c++

我创建了一个空的char多维数组,但是当我尝试更改特定值时,它有时会复制到数组中的另一个空格.

例:

#include <iostream>
using namespace std;

char arr[2][2] = { 0 };

int main ()
{
    arr[2][0] = 'A';
    for(int i = 0; i < 3; ++i)
    {
        for(int j = 0; j < 3; ++j)
        {
            cout << "arr[" << i << "][" << j << "] = " << arr[i][j] << endl;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

arr[0][0] =
arr[0][1] =
arr[0][2] =
arr[1][0] =
arr[1][1] =
arr[1][2] = A
arr[2][0] = A
arr[2][1] =
arr[2][2] =
Run Code Online (Sandbox Code Playgroud)

角色A应该只出现在,[2][0]但它也出现在[1][2].这只发生在以下空间:

[1][0], [2][0], [0][2], [2][2]
Run Code Online (Sandbox Code Playgroud)

我能够用更大的数组重新创建它,但我不能说具体的值.

我已经尝试在main()函数内部进行定义但是它创建了另一个问题,随机字符开始出现在数组的随机位置.

我尝试初始化数组char arr[2][2] = { 0 },但它没有帮助.

ODY*_*Kon 6

声明时char arr[2][2] = { 0 };,那是一个2x2数组.这意味着它的索引从0到1.你正在写入索引2,它超出了数组边界.