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

Sheddex

unregistriert

1

10.05.2006, 17:57

Verwirrung, da beides funktioniert: &* und *&

Hi, ich habe eine Direct3D-Initialisierungs Funktion geschrieben, die auch wunderbar funktioniert... nur ist dabei eine Frage aufgekommen:

C-/C++-Quelltext

1
2
3
4
5
6
void InitializeDirect3D (Direct3DConfiguration Configuration, IDirect3DDevice9 **pDevice)
{
//...

pD3D->CreateDevice (D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, Configuration.Window, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &PresentParameters, &*pDevice)
//...

}


Der Code ist natürlich gekürzt ;)

Statt &*pDevice kann man nun auch *&pDevice schreiben, was mich irgendwie verwirrt... 2 Möglichkeiten die funktionieren? Komisch... sonst gab's sowas noch nie ;)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

10.05.2006, 18:16

C-/C++-Quelltext

1
2
3
4
5
6
void InitializeDirect3D (Direct3DConfiguration Configuration, IDirect3DDevice9 **ppDevice) 
{ 
//... 

pD3D->CreateDevice (D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, Configuration.Window, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &PresentParameters, ppDevice) 
//... 

}


sollte reichen...



*&ppDevice:
gibt dir den inhalt der speicherstelle von ppDevice, also ppDevice selber

&*ppDevice:
gibt dir die adresse der speicherstelle des inhalts von ppDevice, also wieder ppDevice

ich hoffe meine erklärung is nicht zu verwirrend^^

Sheddex

unregistriert

3

10.05.2006, 19:28

Jo thanx... das obere funktioniert auch. Nur hast du damit eine weiter Frage herrausbeschworen^^: Was macht das "ohne was"?

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

10.05.2006, 19:37

* und & haben genau gegensätzliche Wirkung, heben sich also gegenseitig auf.

Das eine dereferenziert, das andere referenziert.
Das ist so als ob du schreibst a+1-1 und dich dann fragst, warum das dasselbe wie a ist.

Sheddex

unregistriert

5

10.05.2006, 20:17

Also warum a+1-1=a ist hab' ich schon gewusst ;)
Aber danke für die Erklärung... jetzt ist alles klar :)

Werbeanzeige