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 Sinnvolles. 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 sicheres Programmieren 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 pointer auf keinen valid Speicherort zeigt. Das ist wesentlich sicherer, als einen pointer nicht zu initialisieren, da du überprüfen kannst, ob ein pointer null ist, bevor du versuchst, ihn zu dereference.

Bevor du einen pointer verwendest, solltest du mithilfe 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 Praxis verhindert, dass dein Programm aufgrund des Zugriffs auf ungültige Speicherstellen abstürzt. Initialisiere pointer immer mit nullptr, wenn du sie deklarierst, und check vor dem dereference auf null.

challenge icon

Aufgabe

Einfach

Erstelle ein Programm, das die sichere Verwendung von pointer demonstriert, indem es vor dem Dereferenzieren auf null pointer prüft.

Die folgende input wird bereitgestellt:

  • Ein string, der entweder "valid" oder "null" lautet

Dein Programm sollte:

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

Verwende das folgende exakte Ausgabeformat:

Value: [value]

Für null pointer 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