Создание массива не зная его будущий размер

Задача такова, вводится последовательность чисел оканчивающаяся нулем, например: 1 2 3 4 5 0, так вот, я не имею понятия сколько будет продолжаться ввод чисел отличных от нуля. Я хочу эти числа хранить в массиве. По логике я:

// объявляю массив.
int[] array;

// решаю наполнять его через цикл.
int i = 0;
int j = scanner.nextInt();
while (j != 0) {
    array[i] = j;
    j = scanner.nextInt();
    ++i;
}

По мне очень логичное решение. Я понимаю, что если j изначально будет 0, то массива так и останется неинициализированным. По итогу, как поступают в данном случае? Спасибо!


Ответы (2 шт):

Автор решения: Zhihar

В c++:

  1. используем контейнеры stl: std::vector, std::list и т.д.

  2. сначала определяем сколько элементов нужно, потом создаем динамический массив:

     int* arr = new int[arr_size];
    

в python:

  1. используем список list

и т.д.

→ Ссылка
Автор решения: Кирилл Новгородцев

При достижении конца массива как правило создают новый, в два раза больше текущего, копируют туда данные и продолжают наполнять до достижения конца. Дальше всё повторяется.

→ Ссылка