Я должен спросить, почему вы думаете, что они вообще связаны?Если бы вы не могли индексировать массив по переменной времени выполнения, было бы бесполезно даже использовать массивы.Объявление переменной размера, определяемой переменной времени выполнения, совершенно иное и требует фундаментальных изменений в том, как компилятор управляет автоматической памятью.
Именно поэтому вы не можете сделать это в C ++.Это может измениться, но сейчас вы не можете.
Если вам действительно нужен массив переменного размера, вам нужно выделить его динамически.Вы можете сделать это сложным, простым способом (char * buff = new char[size]...delete [] buff;
), или вы можете сделать это простым, более безопасным способом (std::vector<char> buff(size)
).Твой выбор.Вы не можете построить его «в стеке».