Создание массива с переменной

У меня есть следующий код:

#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 должен сделать это.

Другие вопросы по тегам