Ich habe einen Zeiger, der auf ein Array zeigt, und einen anderen Zeiger, der auf dasselbe Array verweist. Wie lösche ich einen dieser Zeiger, ohne das Array zu löschen, so dass der zweite nicht gelöschte Zeiger immer noch funktioniert?Wie löscht man einen Zeiger, ohne die Daten zu löschen, auf die der Zeiger zeigt?
zum Beispiel:
int* pointer1 = new int [1000];
int* pointer2;
pointer2 = pointer1;
Jetzt möchte ich von Zeiger1 loszuwerden, wie würde ich es tun, so dass ich auch weiterhin das Array normaly durch Zeiger2 zugreifen?
Ahh das erklärt es das Beste für mich. Ein Zeiger ist also einfach eine Variable auf dem Stack, das macht Sinn. Dies bedeutet, dass es nicht außerhalb des Geltungsbereichs zugegriffen werden kann und ich es nicht versehentlich außerhalb des Geltungsbereichs verwenden werde und Probleme verursachen. OK danke. – Faken
@ Faken - Um klar zu sein, "ein Zeiger ist einfach eine Variable auf dem Stapel" ist keine wahre Aussage. Der Zeiger in Ihrem Codebeispiel ist eine Stapelvariable, da Sie es statisch deklariert haben. Ein Zeiger kann auch dynamisch deklariert werden, wie Neil Butterworth in seinem Beispiel zeigt. Es ist alles, wie Sie es deklarieren, es ist nichts Besonderes, dass das Objekt ein Zeiger ist. – bta
@bta: Ich sehe nichts statisch erklärt. Vielleicht meinen Sie "automatisch", den eigentlichen Begriff. (Das heißt, Dinge sind nicht stapelweise zugeordnet, aber sie werden automatisch zugewiesen.) – GManNickG