gpt4 book ai didi

arrays - 我的3D数组长度为2,但在运行时访问索引2紧急情况

转载 作者:行者123 更新时间:2023-12-03 11:41:25 25 4
gpt4 key购买 nike

我有以下代码

fn main() {
let mut array: [[[i32; 32]; 32]; 2] = Default::default();

for x in 0..31 {
for y in 0..31 {
array[x][y][1] = 1;
}
}
}

当我运行它时,我得到了错误

thread 'main' panicked at 'index out of bounds: the len is 2 but the index is 2', src/main.rs:6:13

这是 array[x][y][1] = 1;行。

如果数组的长度为2,则应该可以在索引1中放入内容,但是由于某种原因,它表示我正在尝试访问索引2。对此的解决方案是什么?

最佳答案

let array1: [i32; 2];

是2个 i32的数组。简单。现在 i32是2数组“内部”的类型。因此,当我们编写时:
let array2: [[i32; 32]; 2];

这是2个 [i32; 32]元素的数组。因此,这是一个包含32个 i32元素的2个数组的数组。当您这样做时:
let array: [[[i32; 32]; 32]; 2]

内部维度为 32,而最大 外部维度为2。

我想你的意思是:
let mut array: [[[i32; 2]; 32]; 32] = Default::default();

for x in 0..31 {
for y in 0..31 {
array[x][y][1] = 1;
}
}

关于arrays - 我的3D数组长度为2,但在运行时访问索引2紧急情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60424021/

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