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

1

25.07.2005, 20:46

Kurze Frage zu Zeiger

Wenn ich einen Zeiger wie folgt schreibe:

C-/C++-Quelltext

1
2
3
4
int Bsp = 12;
int *pBsp = NULL;

pBsp = &Bsp;


Dann übergebe ich den Zeiger pBsp ja die Speicheradresse von Bsp. Im Buch C++ für Spieleprogrammierer steht, dass man einen Zeiger erst mal mit NULL erzeugen soll und diesen anschließend initialisieren soll. Was spricht dagegen dies gleich zu tun?

C-/C++-Quelltext

1
2
int Bsp = 12;
int *pBsp = &Bsp;


Könnt Ihr mir das evtl. Nachteile oder auch Vorteile nennen?

thx

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

2

25.07.2005, 21:04

Es spricht nichts dagegen das im Buch ist ja auch anders gemeint... Er meinte, wenn du ihn nicht initialisierst, dann zeigt er irgendwo hin. Im Debuger kann dann stehem 0x112556AF Und das ist ja eine gültige Adresse.... Das kann zu schweren Fehlern führen.

Steven77

Alter Hase

Beiträge: 515

Wohnort: Münster - Gievenbeach

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

3

25.07.2005, 21:04

Die Sache mit dem "erstmal mit NULL" initialisieren gilt eigentlich nur, sofern Du den Zeiger nicht direkt mit einem anderen Wert initialisierst. Und zwar geht es darum, dass Du checken kannst, ob der Zeiger bereits einen "gültigen" Wert enthält (p != NULL) oder halt noch nicht (p == NULL).
In Deinem kleinen Beispiel spricht rein gar nix dagegen, den Zeiger direkt mit der Adresse zu initialisieren:

C-/C++-Quelltext

1
2
int bsp = 77;
int* pBsp = &bsp;

4

25.07.2005, 21:07

Oki habs verstanden. Danke für die Antworten!

Werbeanzeige