Это
int total = 3;
uint64_t myarray[total] = {};
является определение массива переменного размера Becaue размера массива не является постоянным выражением во время компиляции.
Такой тип массивов условно поддерживается C99. Однако эта функция отсутствует в C++ (хотя некоторые компиляторы могут иметь свои собственные языковые расширения, которые включают эту функцию в C++), и компилятор правильно выдает ошибку.
Либо вы должны использовать константу в определении массива, например, как этот
const int total = 3;
uint64_t myarray[total] = {};
или вы должны рассмотреть использовать другой контейнер, как, например std::vector<uint64_t>
, если предположить, что Изя массива может быть изменен во время выполнения.
«Не целое * постоянное *», которого нет. – user2864740
'total' должно быть' const'. –
Размеры массива должны быть постоянной времени компиляции. – emlai