假设您有与此类似的代码:
#define maxX 80
#define maxZ 80
//Sector class
class Sect{
...
}
Sect sects[maxX][maxZ];
这会创建一个合理的二维 Sect 数组吗?
假设您有与此类似的代码:
#define maxX 80
#define maxZ 80
//Sector class
class Sect{
...
}
Sect sects[maxX][maxZ];
这会创建一个合理的二维 Sect 数组吗?
它会创建一个二维类数组Sect
,是的。我不确定您所说的“合理”是什么意思,所以我无法对此发表评论。
但请考虑:
std::array
和std::vector
是的。
这个说法
Sect sects[maxX][maxZ];
创建一个 Sect 的二维数组,总大小(Sect 元素的数量)maxX * maxZ
。您的元素的有效索引将是 from sects[0][0]
to sects[maxX-1][maxZ-1]
。尝试使用超出这些范围的索引访问数据是无效的,并且会导致未定义的行为。