Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

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

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
15.06.2004, 10:43 Uhr
~Vierie
Gast


Hallo!

Ich habe in meinem Programm einen Pointer auf eine dynamische Struktur. Da ich diesen übergeben will, die Adresse der Struktur aber wechseln kann, möchte ich einen Pointer auf diesen Pointer übergeben. Wie deklariere ich das?

Da ich den Pointer durch mehrere Klassen durchgeben muss, aber nicht überall die Definition der Struktur habe, wechsle ich den Pointer auf void. Wie kann ich den void Pointer wieder zurückwandeln zu dem Structurpointer?

Gruß
Vierie
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
15.06.2004, 10:59 Uhr
Pablo
Supertux
(Operator)



C++:
int x=8;
int* pointer_auf_x = &x;
int** pointer_auf_pointer_auf_x=&pointer_auf_x;



Du willst bestimmt das in einer Funktion packen:

C++:
void foo(datentyp** ptr)
{
   datentyp* arbeitskopie = *pt;
   // ... hier arbeit mit *arbeitskopie erldeigen
   //falls du die Adresse änderen willst
   arbeitskopie=neue_adresse; // bzw *ptr=neue_adresse;
}



Du kannst durch casting auf void "andern"


C++:
int *x=&y;
void* k = (void*) x;
int* j=(int*) k;


--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
15.06.2004, 11:01 Uhr
KaraHead



bin mir nicht sicher aber probier's mal so:

void** pp=&p; //adresse des Pointers, indirekt auch adresse der strucktur

Hoffe ich meine das richtige.


Zitat:

Oh da war wohl einer schneller und mit besserer erklärung

Dieser Post wurde am 15.06.2004 um 11:02 Uhr von KaraHead editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
15.06.2004, 11:25 Uhr
~Vierie
Gast



Zitat:
Pablo postete

C++:
int x=8;
int* pointer_auf_x = &x;
int** pointer_auf_pointer_auf_x=&pointer_auf_x;



Du willst bestimmt das in einer Funktion packen:

C++:
void foo(datentyp** ptr)
{
   datentyp* arbeitskopie = *pt;
   // ... hier arbeit mit *arbeitskopie erldeigen
   //falls du die Adresse änderen willst
   arbeitskopie=neue_adresse; // bzw *ptr=neue_adresse;
}





Also das erste hilft mir schon mal, aber letzteres klappt noch nicht.

Ich hab jetzt also einen void Pointer auf einen void Pointer und muss diesen irgendwie umwandeln, so dass ich auf die ursprüngliche Struktur wieder zugreifen kann. Also nicht die Umwandlung in void, die war mir eigentlich klar, sondern wieder zurück, wobei das Problem vor allem dabei liegt, dass ich ja nur einen Pointer auf den Pointer habe, den ich zurückwandeln will.

Gruß
Vierie
 
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: