Есть два обычных способа сделать это.
Первый - иметь какое-то значение часового, которое указывает, что элемент массива не используется.Например, если вы храните количества в целом числе, вы можете использовать значение -1
, чтобы указать, что оно не используется.
В качестве более подходящего примера для вашей ситуации:
struct a {
int inUse;
// all other fields in structure
};
и установите inUse
в элементе массива на 1 или 0 в зависимости от того, используется ли этот элемент массива.
Вторым является сохранение дополнительной информации вне массива дляуказать, какие элементы были использованы.Это может быть карта, если информация об использовании была редкой, или просто счетчик, если вы могли гарантировать, что активные элементы будут смежными в начале.
Для карты вы можете использовать:
struct a b[4];
int inUse[4]; // shows inUse indication for each element.
Для более простой вариации счета:
struct a b[4];
int inUseAtStart; // 0 thru 4 shows how many elements are in use,
// starting at b[0].