Wpis z mikrobloga

#cpp #programowanie
Mirko, kolejny problem mam i proszę was o pomoc.
Mam ja klasę. Jaka - nieistotne. W środku parę int i wskaźnik na tablicę dynamiczną, jej rozmiar jest jednym z przechowywanych tam intów.
Program działa aż do destruktora klasy.
Nie bijcie za brak formatowania
picture::~picture(void)
{
delete this->dots;
}
z klamrami [] czy bez za delete - cały czas wywala się.
Zawartość klasy:
int sx, sy, color, pixels;
int *dots;
Nie będę szczędzić plusów ( ͡° ͜ʖ ͡°)
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@allthethings:
I za co dziękuję.
https://pastebin.com/GK5VXug0
Cały kod. Klasa w linijkach 9 - 21. Destruktor 134 - 137.
Błąd : Unhandled exception at 0x778240FD (ntdll.dll) in projekt.exe: 0xC0000005: Access violation reading location 0x0000005C. Ja to rozumiem jako jakiś błąd destruktora. Po zamianie mojego destruktora komentarz dzieje się to samo.
A co do trzeciego - tak, nie wiem jak działa delete. Od jakiegoś zera trzeba zacząć.
  • Odpowiedz
@cookie96:
Po pierwsze, to co napisał @Saly.
Po drugie, w konstruktorze jest ścieżka wykonania która nie inicjalizuje wskaźnika dots.
// Edit: albo i nie istnieje, nie zauważyłem linii 69-70
Po trzecie, w tym kodzie jest jakiś pierdyliard wskaźników które nie wydają się do niczego potrzebne, ale to wygląda trochę jak (złe) nawyki z C.
Po czwarte, spróbuj użyć std::vector dots zamiast int *dots, nic nie allokuj ręcznie tylko jak już wiesz jaki
  • Odpowiedz