Управление памятью объектов (экземпляров классов) является относительно сложным, поскольку объекты могут пережить вызов функции, жизнь других объектов или даже жизнь потоков, которые их выделили. Они являются независимыми объектами в куче, которые нуждаются в бухгалтерском учете, чтобы убедиться, что они освобождены, когда они больше не нужны (когда на них больше нет ссылок из каких-либо других потоков / объектов, они недоступны, таким образом невозможно 10000 *, поэтому безопасно удалить).
С другой стороны, структуры и перечисления просто хранят свои экземпляры встроенными. Если они объявлены как локальные переменные, они размещаются в стеке. Если они размещены как свойство другого объекта, они просто хранятся непосредственно внутри этого объекта. Они удаляются только благодаря тому, что их содержащийся контекст освобождается, например, когда функция возвращается или когда объект освобождается.