Menu
Coddy logo textTech

Null-Pointer

Teil des Abschnitts Logik & Ablauf der C++-Journey von Coddy. Lektion 4 von 56.

Wenn du einen pointer deklarierst, zeigt er nicht automatisch auf etwas Bedeutungsvolles. Ein nicht initialisierter pointer enthält zufällige Speicheradressen, was zu schwerwiegenden Fehlern führen kann, wenn du versuchst, ihn zu verwenden. Hier werden null pointer für eine sichere Programmierung unverzichtbar.

Ein null pointer ist ein pointer, der ausdrücklich auf nichts zeigt. In modernem C++ erstellst du einen null pointer, indem du ihn mit nullptr initialisierst:

int* ptr = nullptr;  // ptr ist jetzt ein Nullzeiger

Das Schlüsselwort nullptr gibt an, dass der Zeiger auf keinen gültigen Speicherort zeigt. Dies ist wesentlich sicherer, als einen Zeiger nicht zu initialisieren, da du überprüfen kannst, ob ein Zeiger null ist, bevor du versuchst, ihn zu dereferenzieren.

Bevor du einen pointer verwendest, solltest du mit einer einfachen if-Anweisung überprüfen, dass er nicht null ist:

if (ptr != nullptr) {
    // Hier ist es sicher, *ptr zu verwenden
    int value = *ptr;
}

Diese Vorgehensweise verhindert, dass dein Programm aufgrund des Zugriffs auf ungültige Speicherstellen abstürzt. Initialisiere Zeiger immer mit nullptr, wenn du sie deklarierst, und prüfe vor dem Dereferenzieren auf null.

challenge icon

Aufgabe

Einfach

Erstelle ein Programm, das die sichere Verwendung von Zeigern demonstriert, indem es vor ihrer Dereferenzierung auf Nullzeiger prüft.

Die folgende Eingabe wird bereitgestellt:

  • Eine Zeichenkette, die entweder "valid" oder "null" ist

Dein Programm sollte:

  1. Eine Ganzzahlvariable namens data deklarieren und mit dem Wert 42 initialisieren
  2. Einen Zeiger namens ptr deklarieren
  3. Wenn die Eingabe "valid" ist, die Adresse von data ptr zuweisen
  4. Wenn die Eingabe "null" ist, nullptr ptr zuweisen
  5. Eine if-Anweisung verwenden, um zu prüfen, ob ptr nicht null ist, bevor versucht wird, ihn zu verwenden
  6. Wenn der Zeiger nicht null ist, den Wert ausgeben, auf den er zeigt
  7. Wenn der Zeiger null ist, eine Sicherheitsmeldung ausgeben

Verwende das folgende exakte Ausgabeformat:

Value: [value]

Für Nullzeiger verwende dieses Format:

Pointer is null - cannot dereference

Probier es selbst

#include <iostream>
#include <string>
using namespace std;

int main() {
    // Eingabe lesen
    string input;
    cin >> input;
    
    // Deklariere die data-Variable
    int data = 42;
    
    // TODO: Schreibe deinen Code hier
    // - Deklariere einen Zeiger namens ptr
    // - Überprüfe die Eingabe und weise ptr einen geeigneten Wert zu
    // - Verwende eine if-Anweisung, um den Zeiger sicher zu prüfen und zu verwenden
    
    return 0;
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf

Übe selbstständig: Online-C++-Compiler