я так понимаю, что в FPC есть два способа дин. выделять память New/Dispose и GetMem/FreeMem
1. New/Dispose - для одиночного выделения, (да еще и при том, что мы заранее описали тип указателя) - не подходит по определению.
2. GetMem/FreeMem - я так понимаю аналоги malloc/free в Си, но при загугливании в некоторых описаниях встречаются таки слова: "предельно можно выделить до 64КБ"
- Как это понимать, может они имели ввиду, что предельно можно выделять по 64Кб блоками, и.т.п потом то все равно будет создана виртуальная таблица, из кусочков?
Задача: выделить динамически память от 1- до 300 МБайт. Может ли такое сделать GetMem, если да, то почему пишут про 64 КБ. (всетаки имеют ввиду чанки в страницах?)
Вопрос 2: GetMem просто выделяет память, без всяких дополнительных счетчиков и размеров, SetLength - выделяет еще место под счетчик и длину? тобишь P := GetMem(Size); И Dec(Р) - другие данные, никаким образом не относящиеся к выделенному участку.
PS. И да память именно виртуальная, я не требую физически непрерывный кусок, типа DMA или проброс через ioremap.