mein programm ist sehr speicherintensiv. ich glaube, dass es teils beim anfordern von neuem speicher mittels new keinen speicher zurückbekommt. wie kann ich das erkennen? ich hab wo gelesen, dass man das mit assert macht. wie geht das und muss ich das bei jedem new machen. kann man auch anders prüfen, ob man genügend speicher bekommen hat? woher weiss man ,ob auf dem stack noch genügend platz ist?? danke!!
Ein standardconformer Compiler wirft eine std::bad_alloc Exception, wenn new schiefgeht. Wenn Du jedoch explizit new(nothrow) verwendest, wird keine Exception geworfen und dann ne NULL zurückgegeben. Mit den Asserts funktioniert das so:
C++:
int* a = newint[100]; assert(a); // Prüfe, ob a!=NULL
-- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21)