Я на самом деле работает на присваивания в C, и для нуждающихся в моей реализации, мне нужно использовать статический массив, скажемC - Статический массив с длиной, определяемой переменной
static int array[LEN];
т. е. эта длина массива, LEN
, вычисляется в main()
. Например
static int LEN;
void initLen(int len) {
LEN = len;
}
static int array[LEN];
Где initLen
вызывается в main
и len
вычисляются с использованием аргументов, заданных пользователем.
Проблема с этой конструкции является то, что я получаю ошибку
threadpool.c:84: error: variably modified ‘isdone’ at file scope
ошибка происходит из-за того, что мы не можем инициализировать статические массивы, используя переменные, как длина. Для того, чтобы заставить его работать, я определяю LEN_MAX
и написать
#define LEN_MAX 2400
static int array[LEN_MAX]
Вопрос с этой конструкции является то, что я хочу подвергать себя для буферов переполнения и ошибки сегментации :(
Так что я интересно, если есть некоторый элегантный способ инициализировать статический массив с точной длиной LEN
?
Спасибо заранее!
Что такое 'isdone' и что он должен делать с вашим массивом? Нигде в вашем вопросе, кроме сообщения об ошибке, упоминается эта переменная 'isdone'. Пожалуйста, предоставьте [SSCCE] (http://sscce.org/). –
@JoachimPileborg well 'isdone' - это просто реальный массив в моей программе, массив, который я просто назвал' array' в моем примере. – HappyRave