Решил сделать модуль для работы с множествами большого размера, ведь стандартно только 256 элементов может быть в множестве.
Базовый тип :
TBitSet = set of 0..7
Моделирование большого множества :
TLargeSet = array of TBitSet //Открытый массив
PLargeSet = ^TLargeSet
При работе :
var MyLargeSet : PLargeSet;
...
MyLargeSet := nil;
N := 1024; // Мощность множества
SetSize := N div 8; //размер памяти под массив как я надеялся
if (N mod

getmem (MyLargeSet,SetSize); //выделяем память
//работаем
freemem (MyLargeSet); //освобождаем память
MyLargeSet := nil;
И вроде бы как всё получалось, пока с удивлением не обнаружил, что
тип TBitSet занимает аж 4 байта памяти, а не один байт как я рассчитывал.
Почему так? И как можно (если можно) добиться какой-то упаковки, чтобы TBitSet занимал один байт.
Иначе затея теряет смысл.
Спасибо.