我正在处理一个程序,对于其中一个类,我将宽度和高度传递给构造函数,然后构造函数使用它们初始化一个数组来暂时保存一些数据。
class NoiseDrawable : public Drawable {
public:
NoiseDrawable(const int width, const int height, Color color) : Drawable(width, height) {
float heightMap[width][height];
....
现在问题是我在使用width和height来初始化数组时遇到错误:
expression must have constant value
现在我理解为什么我会得到这个错误,而且它很有道理。我不明白的是,为什么即使在将通过的整数更改为常量之后我仍然可以得到它!
我该如何解决这个问题?
答案 0 :(得分:-1)
如果你想避免矢量,你可以试试这个。增加复杂性并且有点难看
float** heightMap = new int*[width];//create array of pointers (width many)
for(int i = 0; i < rowCount; ++i)
heightMap[i] = new int[height];//add turn each pointer into a float array (height long)
编辑 这需要一些手动内存清理