Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Pointer auf Struct

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
18.08.2003, 23:53 Uhr
~Der Neue
Gast


Hallo Coder

Ich selber mach das noch nich lange, und hab deshalb ne evtl. etwas dumme
Frage....

Ich hab ne Struct mit ein paar Werten initialisiert.
Diese Struct muss ich nun einer Funktion als Pointer übergeben.

Wie mach ich denn nen Pointer auf eine STRUCT ?????

Dankechön
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.08.2003, 00:25 Uhr
Pablo
Supertux
(Operator)


Ein Pointer ist eine Variable, die auf eine andere Variable zeigt. Sie speichert tatsächlich die Adresse vom RAM, wo die zweite Variable gespeichert wird.

Um einen Pointer zu deklarieren, musst du das Zeichen * vor dem Namen der Variable setzen. Um den Pointer zu initialisieren brauchst du einen anderen Pointer oder eine Referenz, besser gesagt, die Adresse eine andere Variable. Bsp:


C++:
int i=6;
int* pointer1_auf_i = &i; // & gibt die Adresse von i zurück
int* pointer2_auf_i =pointer1_auf_i; // Initialisierung mit einen anderen Pointer



Sei XYZ eine Struct. In diesem Fall funktioniert gleich.

C++:
XYZ var;
// var wird initialisiert
XYZ* pointer_auf_var = &var;



Um auf die Members (ich meine vom Pointer) zugreifen zu können, musst du nicht Punkt "." benutzen, sondern Pfeil "->".

Sei folgende Funktion eine Funktion, die XYZ als Pointer übernimmt:

C++:
void funktion_tut_irgenwas(XYZ* xyz_pointer) // Parameter ist pointer
{
    xyz_pointer->memeber1=1; // falls memeber1 ein int ist
    // usw
}



Es gibt zwei Wege:

Weg 1:

C++:
void f1()
{
    XYZ var;
    // hier wird var initialisiert.
    // jetzt wird funktion_tut_irgenwas(XYZ*)  aufgerufen
    funktion_tut_irgenwas(&var); // als Referenz, oder besser gesagt, die Adresse von var
}



Weg 2:

C++:
void f2()
{
    XYZ var;
    // hier wird var initialisiert.
    // jetzt wird funktion_tut_irgenwas(XYZ*)  aufgerufen
    XYZ* temp = &var;
    funktion_tut_irgendwas(temp);
}



Ich mag persönlich die erste Lösung. Ich hoffe, dass ich deine Frage beantwortet hab und dass ich keinen Mist erzählt hab.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 19.08.2003 um 00:50 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
19.08.2003, 00:34 Uhr
~Der Neue
Gast


@Pablo

Das ging ja schnell (hätt ich um halb 1 nicht erwartet )
Das war genau das was mir gerade gefehlt hat!
SUPI-CODE-BSP !! (ausführlich & verständlich)

DANKESCHÖN AN PABLO --

Jetzt kann ich ja doch noch "weiterspielen".....
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.08.2003, 00:38 Uhr
Pablo
Supertux
(Operator)


Ich bin nicht nur ein Superheld (Supertux), sondern auch eine Nachteule Ich bin in Forum manchmal bis um 3 Uhr morgens. Schließlich müssen Superhelden in der Nacht wach sein (etwa wie Phantomias), um die Böse zu schnappen
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 19.08.2003 um 00:47 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: