Я чувствую здесь более глубокую проблему. Вы не должны полагаться на id
, чтобы отслеживать уникальные экземпляры на протяжении всей вашей программы. Вы должны просто увидеть его как не гарантированный индикатор местоположения памяти в течение всего экземпляра объекта. Если вы сразу создаете и освобождаете экземпляры, вы можете очень хорошо создавать последовательные экземпляры в том же месте памяти.
Возможно, вам нужно отслеживать статический счетчик класса, который присваивает каждому новому экземпляру уникальный идентификатор, и увеличивает статический счетчик класса для следующего экземпляра.