Создание массива с переменной
У меня есть следующий код:
#include <iostream>
using namespace std;
int main()
{
unsigned int endx = 5;
unsigned int endy = 5;
unsigned int endz = 5;
int Matrix[endx+1][endy+1][endz+1] = {};
return 0;
}
я получил
ошибка C2057: ожидаемое постоянное выражение
Хорошо, как я могу создать Матрицу, как показано в коде, без векторов или динамически распределенного массива?
2 ответа
Решение
Как говорится в ошибке, вам нужны постоянные выражения для определения размеров массива / матрицы; в этом примере, сделать целые числа const
и это скомпилируется.
const unsigned int endx = 5;
const unsigned int endy = 5;
const unsigned int endz = 5;
Если вам не нужны динамически распределяемые массивы или векторы, вам придется заранее знать точный размер массива.
Массивы требуют констант при их создании. В этом коде просто сделать ваши переменные конца * const unsigned int
должен сделать это.