Tengo unas cuantas preguntas sobre el "heap" de Windows:
¿Tiene el heapde Windows algún formato (pe. para mantener constancia de la memoria libre y usada) o puede ser usada como un array continuo? Es decir, ¿puedo usar la memoria no reservada entre dos bloques reservados sin riesgo a comprometer la integridad del heap?
¿Las funciones de la API de Windows (kernel32.dll, user32.dll...) usan el heap o su uso es exclusivo del código específico de la aplicación?
Necesito una región de memoria de tamaño variable que se comporte como un array que crece por el final. Solo mi aplicación debe acceder a ella y debe existir una forma simple de aumentar su tamaño. Algo similar al heap de Linux y la llamada al sistema brk.
De entrada me planteo usar el heap por defecto que reserva Windows al cargar mi aplicación, pero si no puede ser utilizado como un array continuo de memoria sin riesgo a comprometer estructuras de datos del API de Windows descartaré esta posibilidad.
En caso de que las respuestas a las dos preguntas anteriores sean favorables a mi propósito, ¿es una práctica recomendable o mejor reservo directamente otra región con Virtualalloc?
Gracias.