Container die Zeiger enthalten können mittels qDeleteAll()
den reservierten Speicher freigeben. Dabei werden aber nicht die Elemente aus dem Container entfernt, sondern lediglich der delete
-Operator auf jedes Element angewandt.
Folgendes Beispiel speichert Integer-Arrays in einer Liste, danach wird der Speicher freigegeben und die Liste geleert.
#include <QList> int main() { QList<int *> intarrays; for( int i = 0; i < 10; i++ ) intarrays.push_back( new int[100] ); qDeleteAll( intarrays ); intarrays.clear(); return 0; }
Den obrigen Code kann man natürlich auch selbst implementieren:
#include <QList> int main() { QList<int *> intarrays; for( int i = 0; i < 10; i++ ) intarrays.push_back( new int[100] ); for( int i = 0; i < 10; i++ ) delete[] intarrays.takeLast(); return 0; }