Dlaczego ten program się wywala?

0

Witajcie.

Poniżej przedstawiam kilka linii kodu.
Wszystko jest niby OK, ale kiedy program wychodzi z funkcji main(), win7 daje komunikat o wysypaniu się programu.
Kiedy zakomentuję linijkę:

doTablicy.push_back (elKolekcji);

nie ma takiego problemu.
Co może być przyczyną, jak to sprawdzić??
Proszę o jakieś sugestie.

Pozdrawiam.

 
class ObiektTest
{
public:
 int danaTestowa;
};

class Kolekcja
{
public:
 std::vector <ObiektTest> obj;
};

void zapiszeElementy
(
 ObiektTest			&elemDoZapisu,
 std::vector <Kolekcja>	&doTablicy,
)
{
 static Kolekcja elKolekcji;

 elKolekcji.obj.push_back (elemDoZapisu);

 doTablicy.push_back (elKolekcji);	//Blad
}


int main ()
{
 ObiektTest elemTest;
 std::vector <Kolekcja> tablica;

 zapiszeElementy (elemTest, tablica);

 return 0;
}
0

Bo masz zbędny przecinek tu:

&doTablicy,
0

Nie, poniżej był dodatkowy parametr którego dla czytelności sytuacji wywaliłem a przecinek pozostał.

0

Bez przecinka się nie wywala.

0

Ten przecinek to mój błąd podczas pisania postu.
Program się wywala.

0

odpal z debuggerem i zobacz jaki komunikat Ci wysle
zapewne jest to 0x00000 czy inne rzeczy wskazujace ze mazesz po pamieci.

Lec debuggerem krok po kroku i zapewne cos nie inicjalizujesz a uzywasz.

To ze ta linijka kodu nie powoduje bledu to jest (zapewne) czysty przypadek

0

Tylko jak napisałem, wywala sie po wyjściu z main(), nie wiem jak mam to debagoweać w tej sytuacji.

0
KBT napisał(a):

Tylko jak napisałem, wywala sie po wyjściu z main(), nie wiem jak mam to debagoweać w tej sytuacji.

Chrzani waść. http://ideone.com/nmtOZo
Ten kod nie powoduje żadnych błędów, podejrzewam że błędy masz w tej części którą nieumiejętnie wywaliłeś.

1 użytkowników online, w tym zalogowanych: 0, gości: 1