Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

1

03.08.2006, 18:08

**Doppelpointer

hallo leute!
weiß jemand von euch ein gutes tutorial welches mir die 'doppelpointer' gut erklären könnte?

ich hab zb nicht ganz kapiert warum ich die manchmal als parameter für funktionen verwenden soll ... eigentlich check ich überhaupt nicht warum ich einen zeiger brauche der auf einen anderen zeigt O_o
wenn mir die adresse einer variable, eines objektes oder was auch immer bekannt ist, wozu brauch ich sowas noch?

... hoffe jemand kann mir helfen ;)


danke leute 8)
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

Anonymous

unregistriert

2

03.08.2006, 18:47

Doppelpointer ist ein Pointer auf einen Pointer.
Dreifachpointer ist ein Pointer auf einen Pointer auf einen Pointer.
usw.

Phil_GDM

Alter Hase

Beiträge: 443

Wohnort: Graz

Beruf: Student-Softwareentwicklung u. Wissensmanagement

  • Private Nachricht senden

3

03.08.2006, 18:49

wie du hoffentlich weißt, verwendet man en Zeiger auf ein Objekt, um dieses Objekt in der Funktion manipulieren zu können:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
void test()
{
  int i = 0;
  int1(i);
  //i is still 0

  inc2(&i);
  //now i is 1

}

void int1(int i) {i++;}
void inc2(int* i) {(*i)++;}


Was ist jedoch, wenn du nicht das Objekt, sondern den Zeiger manipulieren willst?
Richtig, du nimmst einen Zeiger auf den Zeiger!!

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
void test()
{
  int* pi = 0;
  allocate(pi);
  //adress of pi is still 0

  allocate2(&pi);
  //pi has a valid address now

}

void allocate(int* i) {i = new int;}
vodi allocate2(int** i) {*i = new int;}


Hinweis: Dieser Code produziert speicherlöcher!!!

mfg Philipp

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

4

03.08.2006, 19:18

Oder was ist, wenn du ein dynamisches Array von Zeigern haben willst?
Genau. Doppelpointer:

C-/C++-Quelltext

1
2
3
4
CClass** ppArrayOfObjects = new CClass*[iSize];

//danach mit new die Objekte instanzieren

ppArrayOfObjects[0] = new CClass;
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

5

03.08.2006, 19:25

Auch schön zu verwenden, wenn de char Pointer hast... ist eigentlich dabei selbsterklärend ;)
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

6

03.08.2006, 19:47

oho danke leute :) ich habs verstanden :D


ich liebe euch .. :lol:
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

helium

Treue Seele

Beiträge: 180

Wohnort: NRW, Burscheid (nahe Köln)

  • Private Nachricht senden

7

07.08.2006, 13:41

Re: **Doppelpointer

Zitat von »"$nooc"«

ich hab zb nicht ganz kapiert warum ich die manchmal als parameter für funktionen verwenden soll

In C:
Weil Zeiger by Value übergeben werden. wenn du den Übergebenen Zeiger ändern willst musst du aber den Original-Zeiger haben und nicht nur eine Kopie.
Why is 6 afraid of 7?
Because 7 8 9

CW_Kovok

Alter Hase

Beiträge: 836

Wohnort: nähe Bonn

Beruf: Schüler

  • Private Nachricht senden

8

07.08.2006, 15:32

versuch zum Beispiel mal ne schöne verkettete Liste ohne doppelzeiger, ein graus
Was es alles gibt, das ich nich brauche - Aristoteles

Werbeanzeige