Сколько максимум можно выделить HeapAlloc. Какую АПИШКУ лучше использовать при частом изменении размеров блока.
> "Сколько максимум можно выделить HeapAlloc" В win 9х MSDN рекомендует не более 1-2Mb (иначе significant performance degradation), если нужно больше то следует использовать VirtualAlloc. В NT-based системах максимальный размер ограничен только доступным непрерывным блоком адресного пространства, т.к. HeapAlloc при size > 512Kб сама выделяет память через VirtualAlloc. > "Какую АПИШКУ лучше использовать при частом изменении размеров блока" Зависит от размера и количества блоков. Куча ведь по своей сути предназначена для кучи мелких и средних блоков, но изменение размеров в такой куче дело проблематичное, т.к. при увеличении размера в общем случае приходится выделять новый блок и копировать туда данные. Флаг HEAP_REALLOC_IN_PLACE_ONLY в HeapRealloc ничего не гарантирует, т.к. если данный блок "зажат" между двумя другими занятыми блоками, то расти ему ес-но некуда. Увеличение размера на старом месте возможно если только блок является последним в куче или если после него идет свободный блок достаточного размера. Поэтому для реаллокаций больше подходит VirtualAlloc, но использовать ее для множества мелких блоков не эффективно (минимальный размер резерва адресов 64К, выделение физ.памяти по 4К). Поэтому все зависит от конкретной задачи