Как хранить большое количество элементов в массиве?
Если я не ошибаюсь, в качестве индекса массива используется size_t, который соответствует максимальному размеру памяти для процессора с даннйо битностью. То есть описанная вами ситуация не может произойти в принуципе.
ru.cppreference.com/w/cpp/types/size_t
Для индекса использовать тип long
а для хранения использовать несколько массивов максимального размера и в зависимости от значение индекса вычислять реальный индекс нужного массива