Pointer initialisieren
-
Hi
warum geht folgender Code nicht:unsigned long * hallo = 0;
Steht aber so in meinem C++ Buch und auch teilweise im Internet.
Wie initialisiere ich sonst einen Pointer, der auf dem Stack liegt?
-
Was kommt denn fuer eine Fehlermeldung?
-
Es kommt keine Fehlermeldung. Das Programm stürzt nur ab oder es kommt die übliche Meldung, dass auf einen bestimmten Speicherbereich nicht zugegriffen werden kann. Der Compiler nimmt das ganze.
Mach ich das ganze auf dem Heap sprich mit new klappts.
-
Hallo,
Das kann nicht davon kommen (zumindest nicht direkt). Greifst du auf hallo dann irgendwo zu bzw. dereferenzierst diese Variable?
-
Amateur(guest) schrieb:
Es kommt keine Fehlermeldung. Das Programm stürzt nur ab oder es kommt die übliche Meldung, dass auf einen bestimmten Speicherbereich nicht zugegriffen werden kann. Der Compiler nimmt das ganze.
Mach ich das ganze auf dem Heap sprich mit new klappts.Ja, das ist doch klar, der Zeiger zeigt ja auch auf nichts. Er muss natuerlich
auch auf einen gueltigen Speicherbereich zeigen:int i = 0; int* z = &i; *i = 4;
gruss
v R
-
Ok, lag doch am Zugriff. Hab bei einem Testprogramm über cout zugegriffen und im eigentlichen Programm eine Funktion aufgerufen, die die Variable hinter dem Zeiger füllen soll. Dabei sind wahrscheinlich die Fehler aufgetreten.
-
virtuell Realisticer ... teste deinen Code mal
i ist kein pointer und kann nicht dereferenziert werden
-
(D)Evil schrieb:
virtuell Realisticer ... teste deinen Code mal
i ist kein pointer und kann nicht dereferenziert werden
baeh!
Ich meine natuerlich z