我正在尝试生成 a 的二维数组struct
,但这会导致程序无法启动。窗口冻结,程序在几秒钟后退出。知道为什么吗?
这是我尝试定义数组的文件cells
。
#ifndef _FIELD_H_
#define _FIELD_H_
class Field {
public:
static const int minX = -400;
static const int maxX = 400;
static const int minY = 0;
static const int maxY = 400;
Field();
private:
struct absCell {
int material;
float health;
} cells[maxX - minX + 1][maxY - minY + 1];
};
#endif
当我删除这四行时,程序能够运行:
struct absCell {
int material;
float health;
} cells[maxX - minX + 1][maxY - minY + 1];
知道这是怎么发生的吗?任何帮助表示赞赏!
更新
好的,显然问题是这个数组变得相当大。也许你可以帮我优化一下。
Material 必须是 0 到 10 之间的整数。 Health 必须是 0 到 1 之间的浮点数,最多 2 个小数位。
如何限制这些变量的大小?
更新 2
Mark B 建议使用vectors
while itwasntpete 建议使用指针、new 和 delete。区别在哪里,这两种方法的优缺点是什么?再次感谢!