gpt4 book ai didi

c++ - 从我的二维数组中设置和获取值时出错

转载 作者:行者123 更新时间:2023-11-28 02:30:53 25 4
gpt4 key购买 nike

当我在 flag[1][2] 中放入一个数字时,我会自动将相同的数字放入 flag[2][0]

为什么?

#include <iostream>
using namespace std;

void inicializarFlag(void);
void imrpimeflag(void);

int flag[2][2];

int main(){

int i, j, escolha;

inicializarFlag();
cout<<"digite as posicoes e o valor: "<<endl;

cin>>i;
cin>>j;
cin>>escolha;

flag[i][j] = escolha;
imrpimeflag();

return 0;
}

void inicializarFlag(void){

for (int i=0; i<=2; i++){
for(int j=0; j<=2; j++){
flag[i][j] = 0;
}
}
}

void imrpimeflag(void){

for (int i=0; i<=2; i++){
for(int j=0; j<=2; j++){
cout<<"["<<i<<"]["<<j<<"]: "<<flag[i][j]<<endl;
}
}
}

最佳答案

当您初始化数组 int flag[2][2] 时,您正在初始化一个 2x2 数组,而不是 3x3 数组。由于数组是零索引的,flag[2][0] 在 2x2 flags 数组的第三行的第零列中放置了一个 int,这是越界的。将元素放置在数组边界之外的行为是未定义的,可能会导致您描述的问题。

声明 int flag[3][3] 代码应该可以工作。

关于c++ - 从我的二维数组中设置和获取值时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29046047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com