Структура данных vehicle_array_t
иногда происходит сбой при добавлении нового vehicle_t
.
Я пытался вставлять и удалять объекты в разных порядках, но это может быть крайний случай, который я не знаюо том, как реплицировать.
Определение структуры vehicle_array_t
:
typedef struct {
int size;
int used;
vehicle_t *vehicles;
} vehicle_array_t;
Код, используемый для добавления в массив:
void add_vehicle(vehicle_array_t *array, vehicle_t vehicle)
{
if (array->used == array->size)
{
array->size *= 2;
array->vehicles = (vehicle_t*)realloc(array->vehicles, array->size * sizeof(vehicle_t));
}
array->vehicles[array->used] = vehicle;
array->used++;
}
Код должен изменить размерМассив соответственно, когда добавляется новый vehicle_t
, но, как ни странно, иногда он вызывает ошибки.Я не вижу проблем с кодом, просто глядя на него.