Maximalen Speicher allokieren



  • Hallo,

    wie kann man in C verhinden, dass man, wenn man dynamisch speicher anfordert, nicht den kompletten Speicher oder zu viel Speicher anfordert?
    Wenn ich mir mir realloc und den maximalen wert von size_t speicher anfordere, dann bekommme ich einen speicherzugriffsfehler.
    Könnte die dynamische Speicheranforderung durch einen bestimmten wert limitieren, jedoch möchte ich so viel speicher wie möglich anfordern.
    Hoffe, jemand kann mir helfen.
    Danke im voraus.

    gruß
    n0nam333



  • Wofür genau willst du das tun?



  • Es wird bestimmt plattformabhängige(!) Methoden geben um den größten freien Speicherblock abzufragen. Mit malloc/realloc könnte man sich schrittweise diesem nähern (z.B. anfangen mit Maximalwert, dann immer halbieren, solange bis es passt).
    Ein sinnvollerer Weg wäre wahrscheinlich sich N kleine Blöcke zu ziehen und diese entsprechend selbst zu verwalten, womit man effektiv wahrscheinlich sogar mehr Speicher bekommt.

    Ohne zu wissen was genau gemacht werden soll ist es schwer sinnvolle Lösungen anzubieten.


Anmelden zum Antworten