[Volkard's Kurs Lektion 61] Copy Konstruktor (Speicherleck ???)
-
Hallo wiedermal,
ich bin gerade aus Langweile (weil das Forum ja down war :() auf Volkards Kurs gegangen...
Da fiel mir halt bei der Lektion was auf:
Vector(const Vector &derAndereVector) { m_size=derAndereVector.m_size; m_data=new double[m_size]; for(int i=0;i<m_size;++i) m_data[i]=derAndereVector.m_data[i]; };Hier wird doch für m_data ein neuer Speicherbereich reserviert, aber was passiert mit dem alten wo er vorher hingezeigt hat. Der bleibt ja doch noch in der Luft
(Speicherleck)Sollte es dann nicht so sein:
Vector(const Vector &derAndereVector) { m_size=derAndereVector.m_size; delete [] m_data; m_data=new double[m_size]; for(int i=0;i<m_size;++i) m_data[i]=derAndereVector.m_data[i]; };

-
m_data hat doch vorher noch nirgends hingezeigt, du befindest dich ja in einem Konstruktor.
MfG SideWinder
-
auf welchen speicherbereich sollte er denn vorher hingezeigt haben?
-
Ochja stimmt ja ... Heute wohl ein bisschen blind

Stimmt bin ja im Ctor