Мерность массива определяется на этапе написания кода. Не существует реальных задач, в которых размерность (не путать с размером!) массива необходимо задавать вводом с клавиатуры.
Если же у нас многоуровневые структуры данных с неизвестной глубиной вложенности, то для них используют не массивы, а графы разных видов (чаще всего деревья).
В С++ n-мерный массив - это вектор массивов размерности n-1. Так что 5-мерный массив целых выглядит так: vector<vector<vector<vector<vector<int>>>>>