PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C/C++ Zeiger auf ein struct als Rückgabewert einer Funktion



DanDanger
25-09-2002, 23:07
Hallo Leutz,

ich habe da ein kleines Problem:

Ich habe eine Doppelt verkettete Liste Programmiert.
Nun habe ich da eine Funktion "search(int Schluessel)",
die alle Elemente der Liste nach dem Schlüssel "Schluessel" dursucht, und dann
einen Zeiger auf das Element liefern soll, dass den Schlüssel enthält.
Bei mir sieht das ungefähr so aus :

Liste::Element Liste::search(int schluessel) { // Liste ist der Name der Header-Datei,
in der das Struct "Element" definiert ist.
.......
............ (Tonnenweise Fehlerfreier Code :-) )..............


return gefunden ; // gefunden ist ein Zeiger auf ein struct vom Typ "Element"

Bis hierhin alles OK,
aber wenn ich später im Programm einem Zeiger auf ein Element-Struct den Rückgabewert der Funktion geben will :

Element TestElement = search(Schlüssel) ;

bekomme ich den Fehler :
'cannot convert "TestElement" from Type Element to "gefunden" from Type Element *.'


Meine Frage: Wass soll das ? Die haben doch den gleichen Typ !!


Neugierige Grüsse
DanDanger

anda_skoa
26-09-2002, 09:56
Original geschrieben von DanDanger
Liste::Element Liste::search(int schluessel) { // Liste ist der Name der Header-Datei,
in der das Struct "Element" definiert ist.
.......
............ (Tonnenweise Fehlerfreier Code :-) )..............


return gefunden ; // gefunden ist ein Zeiger auf ein struct vom Typ "Element"


Wenn gefunden ein Pointer auf Element ist, müßte es dann oben nicht heißen
List::Element* Liste::search(int)

und hier


Element TestElement = search(Schlüssel) ;


List::Element* TestElement = search(Schlüssel);


Ciao,
_

DanDanger
26-09-2002, 14:19
DANKE :-)
genau da lag der Fehler ... :-)

Jetzt funzt das Zeug, nochmals: Danke..