To a propos mojego wcześniejszego tematu szybkie wczytywanie dużych plików.
Mam klasę generyczną Zbior, do której przesyłam obiekty składające się z danych pobranych z pliku. Klasa Zbior zawiera również funkcję quicksort, którą wywołuje z inna funkcja (klasyfikuj) z main'a. Teraz problem wygląda tak, nawet dla głupiej dwukrotnej walidacji krzyżowej (podzieleniu pliku z danymi na 2 części i sprawdzaniu dwukrotnie czy na podstawie jednej połówki dobrze poklasyfikuje drugą) zużycie pamięci dochodzi prawie do 200mb. Dla 5-krotnej przekracza 2GB :) Jak rozumiem przy każdym wywołaniu quicksorta dane są wrzucane na stos, ale potem nie są usuwanie z niego, nawet jak funkcja quicksort się wykona i przez to po wywołaniu funkcji po raz drugi dokładane są kolejne dane na stos? Czy da się zrobić tak żeby po tym jak funkcja quicksort skończy sortowanie, to żeby pamięć została zwalniana? Czy do tego muszę ją wywoływać poza klasą? Nie do końca rozumiem kwestie związane z zarządzaniem pamięcią.