maximaler Speicher, den malloc zuordnen kann

Ich habe versucht herauszufinden, wie viel Speicher ich auf meinem Computer maximal belegen kann (1 GB RAM 160 GB HD Windows-Plattform).

Ich habe gelesen, dass die maximale Speicherkapazität, die malloc zuweisen kann, auf den physischen Speicher (auf dem Heap) beschränkt ist.

Auch wenn ein Programm den Speicherverbrauch bis zu einem bestimmten Grad übersteigt, funktioniert der Computer nicht mehr, da andere Anwendungen nicht genügend Speicherplatz benötigen.

Um zu bestätigen, schrieb ich ein kleines Programm in C:

int main(){  
    int *p;
    while(1){
        p=(int *)malloc(4);
        if(!p)break;
    }   
}

Ich hatte gehofft, dass es eine Zeit geben würde, in der die Speicherzuweisung fehlschlagen und die Schleife unterbrochen würde, aber mein Computer hing, da es sich um eine Endlosschleife handelte.

Ich habe ungefähr eine Stunde gewartet und musste schließlich meinen Computer zwangsweise herunterfahren.

Einige Fragen

Weist malloc auch Speicher von HD zu?Was war der Grund für obiges Verhalten?Warum hat die Schleife zu keinem Zeitpunkt unterbrochen?Warum ist keine Zuordnung fehlgeschlagen?

Antworten auf die Frage(14)

Ihre Antwort auf die Frage