In C++ können Sie can veranlassen, dass eine Funktion aufgerufen wird, wenn new
fehlschlägt. Gibt es eine Möglichkeit, eine Funktion aufzurufen, die immer dann auftritt, wenn malloc
fehlschlägt? Angenommen, malloc
wird von Bibliotheken von Drittanbietern aufgerufen, die ich nicht ändern möchte.Gibt es ein Äquivalent von set_new_handler() für malloc() Fehler?
Ich glaube nicht, dass es eine portable Antwort gibt, also werde ich gerne plattformspezifische akzeptieren. Ich verwende Linux + uclibc auf einigen Plattformen und Linux + glibc auf anderen. Ich plane, zu verwenden, um die Menge des Speichers zu begrenzen, den malloc
zurückgeben kann.
Wir gehe davon aus, dass du dich übermalt hast. Recht? –
Conrad: Ich hoffe es, aber ich besitze nicht das gesamte System, ich stelle nur eine App zur Verfügung. Ich wurde von den Leuten, die das System entworfen haben, eine gewisse Menge an RAM versprochen, und im Gegenzug muss ich versprechen, innerhalb dieser Grenze zu bleiben. (Dies ist ein eingebettetes Gerät ohne Swap, also werden die Leute mit dem Speicherbudget ziemlich ernst und stellen sicher, dass alles passt). – user9876