Pointer/ Zeiger ?!
-
Dimah tu das bitte zu den FAQs dazu
-
Original erstellt von <Zusatz>:
**
> stimmt wer braucht schon dynamischen speicher
int &x = *new int; :p
**Eigentlich interessant.
struct B {}; struct D1 : B {}; struct D2 : B {}; struct D3 : B {}; void foo (int a, int b) { B& r = *(a == 12 ? new D1 : b == 42 ? new D2 : a == b ? new D3 : new B); /* ... */ delete &r; }
Ich bin mir nicht sicher, ob so etwas definiert ist, weil nach dem delete »zeigt« r auf kein gültiges Objekt mehr ...
-
ich würd sagen, nach dem delete ist r keine gültige Referenz mehr, und genauso dumm wie int &i = (int&) 01234;
-
das hatten wir aber doch schonmal, oder?
-
kannst du wenigstens mal antworten Dimah bitte ?
-
Dimah oder Hume: ihr könntet doch wenigstens den langen beispielcode zu Arrays und Pointer dazutun
-
sorry <oder > & <erklärer> war mit php bescheftig und habe mir die threads nicht duchgelesen
ich warte bist keiner mehr was zu sagen hat (wenn der thread auf seite 2 kommt) dann verschibe ich ihn
-
Na und, hat irgendjemand festgelegt, dass Referenzen während ihrer Existenz immer gültig sein müssen? Das benutzen von r würde UB auslösen, aber die bloße Existenz doch nicht.
-
es ist nur festgelegt, dass eine Referenz bei ihrer Initialisierung gültig sein muss! Was anderes hab ich jedenfalls noch nie gelesen!
Also könnte dochint &m = *new int; /* ... */ delete &m; m = 10;
implizit undefiniert sein
aber erlaubt sollte es schon seinwenn noch wer was zu sagen hat, sollte er das jetzt tun
-
Zeiger verwendet man außer um Dynamischen Speicher zu verwalten auch heutzutage noch häufig als iterator.
-
@<erklärer>
habe dein posting in den Arrays und Pointer thread reingeedit