【发布时间】:2015-11-27 08:36:36
【问题描述】:
我有一个关于二维数组索引的问题。这里 player_board 被声明为一个指向 char 的双指针,它是一个二维数组。然后我分配内存,一切似乎都很好。 x_vals 和 y_vals 是存储 x 坐标和 y 坐标的两个向量。我正在尝试用“A”替换给定 x、y 值的原始值。当我打印出 x_vals 和 y_vals 的元素时,它看起来很好,但是当我将它们用作索引时,它们开始随机分配。这是我的代码......我应该如何解决这个问题?感谢您的帮助
for(unsigned int i = 0; i < x_vals.size(); i++) {
cout << x_vals.at(i) - 48 << y_vals.at(i) - 48 << endl;
player_board[x_vals.at(i) - 48][y_vals.at(i) - 48] = 'A';
}
【问题讨论】:
-
能否添加 x_vals、y_vals 和 player_board 的声明/赋值语句?
-
您能否也显示一个输出示例以查看索引是否有问题?
-
'-48' 似乎有风险,因为您可能会按负数索引数组。
-
为什么你在 x_vals 和 y_val 处是“-48”。什么类型的 x_vals 和 y_vals 向量(双精度或整数)?
-
如果你的意思是
'0',写'0'而不是48。根据您的代码,x_vals和y_vals不存储坐标,它们存储可能表示坐标的数字(字符)。存储实际坐标而不是数字(字符)将简化您的代码并且不易出错。 (我怀疑您在某处错过了数字->数字或数字->数字转换。)