Probleme mit Rückgabewert
-
Hallo Zusammen,
ich hoffe, ihr könnt mir weiterhelfen und sagen was mein Fehler ist.

Und zwar hab ich selber eine Klasse geschrieben: chapter.
So, meine Funktion um die es hier geht hat von Rückgabewert den Typ chapter.Hier kurz etwas code:
#include "chapter.h" //... chapter CHtmlDlg::GetChapterTitel(CString text) { chapter chap; //... //chap werden Werte hinzugefügt //... return chap; }wenn ich das Programm ausführe, erscheint folgende Fehlermeldung:
"Unbehandelte Ausnahme in Html.exe(MFC42D.DLL):0xC0000005: Access Violation."und auf diese Zeile wird verwiesen:
CString::CString(const CString& stringSrc) { ASSERT(stringSrc.GetData()->nRefs != 0); //... }wenn ich das debugge sehe ich, dass er an der Stelle von meinem Return (oben in der Funktion) hängen bleibt.

Weiss nicht wo mein Fehler liegt, kann ihn einer von euch vielleicht sehen?

Bin für jede hilfe dankbar!
-
was vielleicht noch wichtig ist, wie ich diese Funktion aufrufe:
//... void CHtmlDlg::FilterFile() { std::vector<chapter> uChapter; CString kapitel; //... uChapter.push_back( GetChapterTitel(kapitel) ); //... }
-
Lass mich raten - du verwendest CString's in deiner chapter-Klasse. (Die Assertion dürfte beim Kopieren eines Member von 'chap' auf die temporäre Variable aufgetreten sein).
Da solltest du mal schauen, was du mit deinem Objekt gemacht hast - und ob du es eventuell in Stücke geschossen hast (Speicher-Überschreibungen etc können da übel sein).
-
Hi CStoll,
danke für deine Antwort.

Hast recht, benutze CString in der chapter-Klasse.

Wie kann ich nachsehen, ob ich das Objekt zerschossen hab?

Wenn ich mit n Debugger durchgehe und kurz vor dem ausführen desreturn chap;bin, hat chap vernünftige Werte und alle Elemente sind okay. Dem Objekt werden in der Funktion eignetlich nur Kapitelnummer und Kapitelname übergeben.
danke nochmals,
-
habe eine Variable nicht initalisiert.

Hab das korrigiert und nun funktioniert es wieder....

-
Zeig uns mal deine Klasse "chapter".
Verwendest du dort irgendwelche Zeiger?- zu spät -