AV / Naruszenie ochrony pamięci

AV / Naruszenie ochrony pamięci
prgtw
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 255
0

Zrobiłem mały program:
klasy.cpp:
http://pastebin.4programmers.net/4117

main.cpp:
http://pastebin.4programmers.net/4118

Problem: Przy próbie wylistowania elementów wyposażenia lub osiągów w pliku main.cpp następuje naruszenie ochrony pamięci (linuks) lub Access Violation (win). Zrobiłem małe odpluskwianie i w funkcji dodaj_element_wyposazenia() pole element klasy element_wyposazenia dostaje adres np. 0x101010, natomiast przy probie dostania się do tego pola bądź uwolnienia pamięci tego pola (przy jego destrukcji) pole to ma zupełnie inny adres i nie wskazuje już na tekst - nie wiem co się dzieje i chciałbym poprosić o sprawdzenie.

prgtw
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 255
0

Problem rozwiązany + małe zmiany w kodzie. Problemem było podwójne zwalnianie przydzielonej pamięci, w destruktorze było niepotrzebne free() pola klasy.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.