Meine Entwicklungsumgebung ist VS2008, DX9, Windows XP. Ich versuche, die Schutzbehandlung zu dem nicht mehr benötigten Arbeitsspeicher hinzuzufügen. Wenn Malloc NULL zurückgibt, würde ich einige Ressourcen auf die Festplatte pagen und die Ressourcen im Speicher freigeben.Warum malloc immer Null zurückgeben
Aber manchmal, malloc immer NULL zurückgeben, auch wenn ich die meisten Ressourcen freigeben und Prozessspeicherauslastung und VM-Größe ist nur 800 MB im Task-Manager.
Ich denke, malloc zu verwenden, um 88 Bytes zuzuordnen sollte in Ordnung sein, wo Prozessspeicherauslastung ist nur 800 MB. Aber malloc gibt immer NULL zurück.
Könnte das Speicherfragmentierung sein? Es sieht nicht so aus, da die Prozessspeicherauslastung nicht zu groß ist.
alt text http://i.imagehost.org/0267/Snap2.jpg
Können Sie uns Code zeigen? –
Exe wurde von VS-Debugger gestartet und angehängt. – Buzz
void * AllocCRT (Größe_T Größe) { Rückgabe malloc (Größe); } Mem Verwendung: 644,088K VM-Größe: 671.064K – Buzz