Adresse an pointer zuweisen
-
Ich fange gerade mit POINTER an, und wollte fragen wieso man einen Pointer
z.B. nicht eine gewöhnliche Adresse zuweisen kann, sondern nur die Adresse
einer Variable.Wieso bringt er eine Fehlermeldung?:
#include <iostream.h> #include <stdlib.h> int * pointer; void main(){ pointer = 0x32005; system("pause"); }
-
*** **** & != schrieb:
Wieso bringt er eine Fehlermeldung?:
Weil 0x32005 keine Adresse sondern ein (hexadezimales) Integer-Literal ist.
Was du machen kannst:int* pointer = reinterpret_cast<int*>(0x32005);
-
Es macht einfach keinen Sinn Pointer irgendeinen Wert zuzuweisen. Pointer benutzt man auf andere Objekte zu zeigen. Allerdings kannst du nicht wissen was sich hinter solch einer Addresse befindet also den Pointer nie benutzen.
-
Ben04 schrieb:
Es macht einfach keinen Sinn Pointer irgendeinen Wert zuzuweisen. Pointer benutzt man auf andere Objekte zu zeigen. Allerdings kannst du nicht wissen was sich hinter solch einer Addresse befindet also den Pointer nie benutzen.
Sag niemals nie.
es fällt mir kein bisschen schwer daran zu denken, dass zB ein videospeicher bei einer bestimmten adresse liegt und man dann schön reinschreiben kann. klingt für mich nicht sonderlich abwegig...
-
Shade Of Mine schrieb:
Ben04 schrieb:
Es macht einfach keinen Sinn Pointer irgendeinen Wert zuzuweisen. Pointer benutzt man auf andere Objekte zu zeigen. Allerdings kannst du nicht wissen was sich hinter solch einer Addresse befindet also den Pointer nie benutzen.
Sag niemals nie.
es fällt mir kein bisschen schwer daran zu denken, dass zB ein videospeicher bei einer bestimmten adresse liegt und man dann schön reinschreiben kann. klingt für mich nicht sonderlich abwegig...
Ist aber ein Implementirungs Detail. Die Ziel Platform wird da mit Sicherheit etwas besseres zur Verfügung Stellen, und wenn es nur ein reinterpret_cast hinter einem Makro versteck ist. Wenn du magische Zahlen brauchst machst du höchst wahrscheinlich etwas falsch.