Błąd unable to read memory - programowanie obiektowe

0

Witam.
Pisze aplikacje symulujaca swiat (rosliny , zwierzeta) itp.

Klasa Organizm jest klasa abstrakcyjna. W klasie Swiat tworze tablice wskaznikow na Organizm

Organizm *organizmy[rozmiar*rozmiar];

Moj problem pojawia sie w tym momencie:

for (int i = 0; i < this->ilosc_organizmow; i++){
		this->organizmy[i] = &(Zwierze(this));
	}

0-wy (1-wszy) element tworzy sie i jest ok. Problem jest przy kolejnych elementach tablicy wskaznikow. Przy debugowaniu pisze unable to read memory dla moich parametrow. Dodam ze gdy napisze:

this->organizmy[i] = &(Zwierze(this))+i;

To rowniez nic nie daje.

Przy przekazywaniu utworzonego obiektu do innej metody obiekt ten jest w calosci pusty.

0

Nie wiem co wg ciebie znaczy &(Zwierze(this)); ale na pewno nie to co ci sie wydaje...

0

Wydaje mi sie ze jest to referencja na obiekt klasy zwierze. Jesli sie myle to jak wlasnie tak zrobic zeby dostac referencje na wszystkie obiekty?
Wskaznik this jest wskaznikiem na obiekt klasy Swiat ktory przepisuje i rownie dobrze moglyby byc tutaj opuszczony i byc bez tego.

1

Masz rację, wydaje ci się... To co robisz to pobranie adresu lokalnie utworzonego obiektu klasy Zwierze gdzie do konstruktora przekazałeś wskaźnik this. Nie ma to ZUPEŁNIE nic wspólnego z tym co napisałeś.

0

A jak nalezy zrobic aby moj cel operacji sie udal? Jakies wskazowki? Prosze o wyrozumialosc dopiero ucze sie obiektowki.

0

To moze łaskawie napisz co należało zrobić w tym zadaniu? Bo to co robisz nie ma z tym niewątpliwie nic wspólnego...

0

Ja się obawiam, że on chce wywołać statyczny konstruktor.... tyle, że on życ będzie do dojścia do końca pętli for, a więc w zasadzie od razu zostanie usunięty....

@myszka_miki_programista musisz przydzielić pamięć dynamicznie i później pamiętać by ją zwolnić.

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