Hallo Martin,
Dabei mache ich ausgiebig Gebrauch von dynamischer Speicherreservierung mit GlobalAlloc() und GlobalFree().
Aber bitte nur im Notfall. Diese Funktionen sind da, um Kompatibilität für 16-bit Anwendungen bereitzustellen.
Memory Management - Global and Local functions
Neue Anwendungen sollen die Heap-Funktionen verwenden. Die sind auf der genannten Seite verlinkt.
Die Existenz eines private heap bedeutet übrigens auch, dass die Speichermenge, die für deinen Prozess gemeldet wird, unerwartet groß ist. Oder sich nicht verändert, wenn Du einen HeapAlloc machst. Eventuell musst Du mit GetProcessHeap, QueryHeapInformation oder HeapWalk ein paar Details austüfteln.
Inwieweit malloc und Konsorten unter der Haube auf die Heap-Funktionen zugreifen oder ob sie einen von der C Runtime allocierten Heap unterverwalten, weiß ich nicht. Das hängt von der jeweiligen CRT und mutmaßlich auch vom gewählten Speichermodell ab. Aber eigentlich sollte man Speicherverwaltung über die C Runtime machen und nicht direkt beim Betriebssystem.
Rolf
sumpsi - posui - obstruxi