C++ Hausaufgabe -> Assert Fehler?!?!

Dying Cry

Vice Admiral Special
Mitglied seit
05.01.2002
Beiträge
971
Renomée
0
Standort
Göttingen
Hey ihr!

Ich hab eine C++ Hausaufgabe auf! Man sollte ein dynamisches Feld erstellen und sachen reinschreiben und überschreiben, usw... Das ganze objektorientiert!

Habe ich jetzt soweit auch programmiert, allerdings kriege ich einen Assert Fehler!

Ich finde den Fehler aber nicht :(( Auch nicht mit dem Debugger!

Habe die 3 Files mal hochgeladen (alle in ein Projekt und mal compilen):
Link :D

Hoffe ihr könnt mir helfen!

Grüße,
 
Mal so auf den ersten Blick finde ich es eigenartig, dass "a" als pointer auf ein Element deklariert ist, an anderen Stellen aber als Array behandelt wird:
delete[] a;
h[j] = a[j]

Das ist auch nicht völlig verkehrt und wird oft in "C" angewandt. Allerdings muss man dann auch noch immer noch an die Speicherverwaltung denken. In C++ sollte man bei Arrays variabler Länger besser vect<> nehmen.

Edit: Auf den zweiten Blick ist der Gedankengang schon richtig. Allerdings ist die Art der Problemlösung schon ziemlich fummelig und C-typisch. Damit beim Einfügen/Löschen nicht immer alle Elemente bewegt werden müssen, hat man vor 30 Jahren verkettete Listen erfunden. Heutzutage bekommt man die gesamte Funktionalität bei den Standardcontainern (vect, list, etc.) geschenkt. (Bei delete ist IMHO ein Fehler drin für den Fall, dass gilt: pos = gr -1 && n == gr, hier knallt es: a = a[i+1]; )
 
Zuletzt bearbeitet:
Hey Nachtschicht, mal wieder ;)

Ich glaub, bei meinem nächsten Programmierproblem, wende ich mich gleich an dich ;)

Also erstmal danke, der Tipp mit dem delete war gut, daran lag es...

Überarbeite das Programm nochmal!!
Ist allerdings nicht von mir, sondern von unserer Lehrerin das Programm, wir sollten es abtippen und dann nach einer bestimmten Aufgabe verändern!

Jetzt wo das Programm läuft, kann ich auch endlich anfangen es zu verändern! :)


Das es dafür verkettete Listen gibt weiß ich auch, aber die kommen Morgen dran! Bei dem Fach gehts darum alle möglichen Datenstrukturen von C++ kennen zulernen und das war die 1.

Ich wende mich dann mal weiter der Aufgabe zu!

Dank dir Nachtschicht!

P.S.: Was macht die Arbeit?
 
Zuletzt bearbeitet:
[OT on]

Ist allerdings nicht von mir, sondern von unserer Lehrerin das Programm, wir sollten es abtippen und dann nach einer bestimmten Aufgabe verändern!

Jetzt wo das Programm läuft, kann ich auch endlich anfangen es zu verändern! :)

JAJA FRauen und technik ich kenn auch solche geschichten naja egal

[OT OFF]
 
@ Nachtschicht,

der Fehler lag doch nicht beim delete irgendwie...

Ich hab beim ifndef das define vergessen! Nach dem define funktioniert auch das delete!

Ne Erklärung hab ich dafür allerdings nicht... Du vielleicht??


Achja, erinnerst du dich noch an das C Programm mit der Kaffeemaschine wo du mir geholfen hattest? Habe Heute die Note endlich gekriegt! Ist was gutes ;)

Danke nochma!!
 
Ich hab beim ifndef das define vergessen! Nach dem define funktioniert auch das delete!
Ne Erklärung hab ich dafür allerdings nicht... Du vielleicht??
Achja, erinnerst du dich noch an das C Programm mit der Kaffeemaschine wo du mir geholfen hattest? Habe Heute die Note endlich gekriegt! Ist was gutes ;)
Schön zu hören :)
Also an dem define kann es bei dem aktuellen Programm eigentlich nicht liegen. Ich bin jetzt zu faul, das selbst auszuprobieren. Bei Problemen hilft aber fast immer ein Debugger, z.B. gdb. Beim gdb kann man auch breaks setzen auf exit und _exit. Wenn man damit den Fehler nicht findet, bleiben immer noch printfs, mit denen man den Fehler einkreist.

Viel Erfolg noch!
 
Also mit meinem Debugger hat es nicht geholfen, kam aber auch nie auf die Idee beim delete oder im header ein Break zu setzen....

Er kam dann immer zu ner bestimmten Stelle und dann die Assert Meldung, aber wenn ich die Stelle ausmarkierte, war der Fehler wo ganz anderes...

Naja, mittlerweile hab ich neue Probleme, hehe....

Ich glaub ich werd nie ein guter Programmierer.....
 
Zurück
Oben Unten