Co do pierwszej funkcji.. możesz:
- użyć zmiennej statycznej w funkcji(poczytaj o zmiennych statycznych)
- stworzyć odpowiednią strukturę/klasę zawierającą plik i dane, tak żeby ze sobą grały(poczytaj o strukturach lub klasach)
- zapisywać dane w kontenerze (poczytaj o kontenerach STL)
- przesyłać do funkcji referencję na zmienną, która zapamięta na czym skończyłeś
Do wyboru do koloru;D
Te kontenery z STL chyba najbardziej ci się w tym wypadku przydadzą, ułatwią ci również dbanie o te wycieki pamięci;D
co do drugiej funkcji..
Ogólnie to nie mam pewności, ale to "rozmiar_tablicy += 1/2*rozmiar_tablicy;" to o ile się nie mylę, ale suma ciągu
x, (1/2) x, (1/2)^2 * x, (1/2)^3 * x, ..., (1/2)^n * x = 1.33333 x dla n->oo (infinity)
także nie wiem czy na pewno się opłaca ciągle dodawać tej pamięci, skoro to tylko 1,333;D
a co do samego deletowania w tej funkcji.. masz straszny bałagan. nie wiem do końca co chcesz osiągnąć w tej funkcji..
-masz(chyba) zarezerwowaną pamięć wskaźników tablica_osoby
-rezerwujesz pamięc wskaźników tmp
-pod wskazniki w tmp przepisujesz wskazniki z tablica_osoby
-usuwasz pamięc wskazników z tablica_osoby
-przepisujesz adres na wskazniki z tmp do tablica_osob
-rezerwujesz pamięć zmiennych w wskaznikach w tablica_osob <--- tu jest punkt kulminacyjny
nie rozumiem co ta funkcja ma robić... ale o ile podczas wywolywania tej funkcji NIE masz zarezerwowanej pamięci dla zmiennych w wskaźnikach w tablica_osob.. oraz NIE zapominasz o usunięciu tej pamięci zmiennych, oraz pamięci wskażników w odpowiednim miejscu po wyjściu z funkcji, to MOŻLIWE że nie ma wycieku, ale naprawdę nie wiem co ten program ma robić... zainteresuj się kontenerami STL, spodobają ci się, programowanie stanie się bajką;D
(w skrócie.. ten kontener STL, to taka tablica, którą możesz sobie bez problemu powiększyć w razie potrzeb, masz różne te kontenery, vector, list, deque, queue.. z tego co widzę twój poziom to powinieneś bez problemu ogarnąć różnice między nimi;D w każdym razie zamieszczę ci krótki kod z przykładem jak to działa)
#include <vector>
int main() {
std::vector < int > nasza_tablica;
tablica.push_back( 4 );
tablica.push_back( 5 );
tablica.push_back( int( 2 ) );
int zmienna = tablica[ 2 ];
int rozmiar = tablica.size();
return 0;
}