Я новый C++, переключился с matlab, чтобы быстрее запускать симуляции.
Я хочу инициализировать массив и снабжать его нулями.Инициализация массива в cpp и заполнении нулями
# include <iostream>
# include <string>
# include <cmath>
using namespace std;
int main()
{
int nSteps = 10000;
int nReal = 10;
double H[nSteps*nReal];
return 0;
}
Он выдает ошибку:
expected constant expression
cannot allocate an array of constant size 0
'H' : unknown size
Как вы сделать эту простую вещь? Есть библиотека с командой, например, в MATLAB:
zeros(n);
'std :: vector H (nSteps * nReal);' –
UmNyobe
Маски C-стиля в основном существуют по историческим причинам, старайтесь избегать их. У них странное поведение, такое как отсутствие возможности устанавливать размер во время выполнения и вызывать переполнение стека. –
Добавление 'const' /' constexpr' к обоим размерам должно устранить вашу проблему. – Jarod42