Существует несколько возможных подходов.
Вы можете использовать значение контрольной суммы и поместить это значение в конец массива, подобно тому, как '\0'
отмечает конец строки в стиле C. Проблема заключается в том, что вы должны быть уверены, что ваше значение часового никогда не произойдет в данных, которые вам нужно сохранить.
Вы можете переносить счетчик количества значений в массиве и передавать это значение функциям, относящимся к вашему массиву.
Вы можете создать указатель, который указывает один за последним элементом в массиве, и обработать массив как пару указателей: тот, который указывает на первый элемент, и тот, который указывает один за концом. Это совместимо с алгоритмами STL, поэтому, вероятно, это ваш лучший общий подход.
Имейте массив указателей вместо этого и остановите сначала 'nullptr'? – GSerg
@OP - Вы только что указали одну причину, почему массивы имеют проблемы. Если вы объявили массив из 100 объектов, у вас есть 100 объектов, нет «возможно, это может быть меньше». – PaulMcKenzie
Какие объекты? Конечно, вы можете иметь массив 'int', а затем остановиться при первом значении' 0', когда вы перебираете их. :) – wally