Cześć,
mam w moim odczuciu nietypowy problem z którym nie potrafię sobie poradzić.
Po krótce o co chodzi w programie, na początku podaję informację ile zestawów pomiarów będzie wczytywanych potem na początku linii ile pomiarów zawiera zestaw a potem same pomiary na zasadzie najpierw wartość pomiaru potem jego ilość. Do przechowywania pomiaru mam stworzoną klasę Pomiar a do trzymania tablicy pomiarów klasa Pomiary.
kod:
int main() {
unsigned short int iloscZestawow,
iloscPomiarow,
przechwyconaWartosc,
przechwyconaIlosc;
cin>>iloscZestawow;
Pomiary **tablicaZestawow = (Pomiary **) new Pomiary[iloscZestawow];
for (int i = 0; i < iloscZestawow; i++)
{
cin >> iloscPomiarow;
Pomiary *pomiary = new Pomiary(iloscPomiarow);
tablicaZestawow[i] = pomiary;
for(int j=0; j<iloscPomiarow;j++)
{
//przechwytuje dwie kolejne liczby
cin>>przechwyconaWartosc;
cin>>przechwyconaIlosc;
//tworze obiekt pomiar od przechwyconych wartosci
Pomiar *pomiar = new Pomiar(przechwyconaWartosc, przechwyconaIlosc);
tablicaZestawow[i]->tablicaPomiarow[j] = pomiar ;
// w tym miejscu gdy wyswietlam stworozny pomiar wszystko jest ok
tablicaZestawow[i]->tablicaPomiarow[j]->pokazPomiar();
}
// tutaj juz tablica czasami ma zmienione wartosci dla pomiaru
tablicaZestawow[i]->wyswietlPomiary();
}
I teraz o co chodzi. W momencie gdy wychodzę z pętli w pierwszym obiekcie z tablicy czasami zmieniają się wartości najlepiej zobaczyć to na obrazku.
Najdziwniejsze jest to, że czasami wszystko działa a czasami nie :) jak widzicie podałem te same wartości i raz wczytało i przekazało je prawidłowo a za drugim razem zadziała się magia. Zauważyłem że gubi się tylko element 0 tablicy.
Z tego co wyczytałem wywołanie pętli tworzy nowy zakres (scope) i wszystko odbywa się na kopiach elementów i tutaj doszukuję się problemu, niestety nie rozumiem jak miałbym to obejść.
Będę wdzięczny za każdą sugestię i odpowiedź.
Jeżeli kod/zagadnienie jest niezrozumiały proszę pytać postaram się go dokładniej przedstawić.