c ++ переопределение размера массива по умолчанию с аргументами командной строки

Я видел один вопрос на аналогичных линиях
Укажите массив из аргумента командной строки

Хотя моя проблема немного другая.

У меня есть несколько файлов, реализующих массивы одинакового размера (NOC_SIZE). Моя программа имеет режим по умолчанию и пользовательский режим (аргументы командной строки). Я дал ‘unsigned int NOC_SIZE = 16;’ строка в моем коде перед началом основной функции. В другом заголовочном файле я объявил структуру (noc_package) с параметром «static unsigned int NOC_SIZE;». Этот заголовочный файл включен во все файлы, где когда-либо требуется.

Но в файлах, где я объявил массив (int arr [noc_package :: NOC_SIZE]), выдается ошибка, в которой массив связывается не как целое число.

Может кто-нибудь предложить способ обойти это?

Спасибо.

0

Решение

C ++ не поддерживает массивы переменной длины.

Вы лучше использовать std::vector вместо:

std::vector<int> arr(noc_package::NOC_SIZE);
1

Другие решения

Других решений пока нет …