![]() |
c++ segfault im destruktor
hallo
habe mir eine klasse für quadratische matritzen implementiert und bekomme gelegentlich eine segmentation violation im destruktor, die ich mir aber nicht erklären kann. konstruktor und destruktor sehen wie folgt aus: Code:
template<typename T> sieht da jemand auf anhieb den fehler? |
kein rows definiert im 2. teil...
|
rows ist ein attribut der klasse matrix. hier mal die klassendeklaration:
Code:
template <typename T> ok jetzt kommt der segfault in einer anderen methode und zwar in Code:
template<typename T> "This application has requested the Runtime to terminate it in an unusual way. Please contact the applications's support team for more information" den fehler bekomm ich beim programmieren zum ersten mal^^ |
Deine Snippets sehen für mich soweit gut aus.
Wie hast du DimensionError deklariert? Welchen Compiler/OS verwendest du? |
danke für deine antwort
dimesnionerror ist einfach nur eine leere klasse. Code:
class DimensionError{}; ich benutze gcc unter linux (da kommt der segfault übrigens wieder im destruktor und zwar in der for schleife in der zeile Code:
delete[] m[i]; |
ok fehler gefunden. der lag darin, dass ich eine matrix, die schon entsorgt war, weil ich auserhalb ihres gültigkeitsbereiches war, versucht habe nocheinmal zu entsorgen. danke für eure mühen.
|
Und deswegen Pointer immer 0 setzen und vor dem delete abfragen :)
|
naja konkret lag es daran, dass ich in einer anderen klasse eine matrix als member hab und die nicht dynamisch erzeugt habe. also wurde die matrix nach dem durchlaufend es konstruktors der anderen klasse dierekt wieder gelöscht. da das nicht beabsichtigt war, hab ich den pointe auch nicht auf null gesetzt^^
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:50 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.