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

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

41

04.01.2012, 13:34

Ich glaube ein großer Teil der hier schon länger eingesessenen User hat das schon durch. Ich kenne jedenfalls mehr als eine Hand voll (mich eingeschlossen). Irgendwo ist natürlich Schluss, aber Booten, Verwaltung von Fest- und Arbeits-Speicher, sowie Threads und Grafik ist nicht so kompliziert.

Yep, an dem Thema packt irgendwann fast jeden mal habe ich das Gefühl ;) Ist aber auch eine sehr spannende Sache bei der man sehr viel lernen kann.

42

04.01.2012, 13:51

Zitat: "Als ersten Parameter übergeben wir einen Zeiger auf eine Nachrichten Struktur vom Typ MSG, die wir in Zeilen 18 angelegt haben."

Ansich sind beides Zeiger. Mit dem & Operator bekommt man die Adresse einer Variable und kann diese als Zeiger benutzen. Letztendlich ist zwischen "Zeiger" und "Adresse" kaum ein Unterschied.
Lieber dumm fragen, als dumm bleiben!

43

04.01.2012, 14:00

Was bedeutet denn dieses "Zeiger auf" genau?
Einen Zeiger auf eine Klasseninstanz -> ist doch in Quellcode übersetzt:

CRaumschiff Raumschiff;
CRaumschiff *pRaumschiff;
pRaumschiff = &Raumschiff

oder nicht?
Only God can judge me.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

44

04.01.2012, 14:19

"Zeiger auf" heißt, du hast eine Variable, die eine Adresse beinhaltet (auf die Adresse "zeigt") und an der Adresse befindet sich ein spezieller Datentyp, das kann int sein, char, Klassen, Structs oder was auch immer. Auch Methoden oder Funktionen können dort liegen. Daher "Zeiger auf XYZ".
Syntaktisch kann das eben mehreres sein:
char[]
char*
char&
foo = &char

void fooBar(){}
adr = fooBar;
...
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

45

04.01.2012, 14:26

Also sozusagen einen Zeiger auf die Adresse der Variable. Bedeutet soviel, dass ich eine Variable habe, die eine Adresse hat und ich diese Adresse in einen Zeiger schreibe, der danach die identische Adresse hat und somit das Verhalten beider "Variablen" gleich ist?
Only God can judge me.

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

46

04.01.2012, 14:32

Also sozusagen einen Zeiger auf die Adresse der Variable.


Nein. Ein Zeiger ist eine Variable, die die Adresse einer anderen Variable beinhaltet.

47

04.01.2012, 14:35

Yoyo verstanden danke für die Hilfe :D
Only God can judge me.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

48

04.01.2012, 14:56

Wenn Du eine Adresse einer Variable in einen Zeiger schreibst hat der Zeiger dann nicht die selbe Adresse wie die Variable.

Ein Zeiger IST eine Variable, die als Inhalt eine Adresse hat. Natürlich hat dieser Zeiger auch selbst eine Adresse:

int x = 4, y = 5;
int* pointerToX = &x;
int** pointerToPointerToX = &pointerToX;
*pointerToPointerToX = &y; // pointerToX zeigt jetzt auf y!
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

49

04.01.2012, 17:12

int x = 4, y = 5;
int* pointerToX = &x;
int** pointerToPointerToX = &pointerToX;
*pointerToPointerToX = &y; // pointerToX zeigt jetzt auf y!

Muss man eigentlich nicht das * bei der Definition weglassen?
Also müsste es nicht so sein:
pointerToPointerToX = &y;
Only God can judge me.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

50

04.01.2012, 17:41

Das kompiliert nicht. PointerToPointerToX ist eben kein Pointer, sondern ein Pointer auf einen Pointer. Bei der Zuweisung erfolgt eine Dereferenzierung "der ersten Schicht". &y ist lediglich ein int* und könnte somit nicht an int** zugewiesen werden.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige