So überprüfen Sie Null in C: 7 Schritte (mit Bildern)

Inhaltsverzeichnis:

So überprüfen Sie Null in C: 7 Schritte (mit Bildern)
So überprüfen Sie Null in C: 7 Schritte (mit Bildern)

Video: So überprüfen Sie Null in C: 7 Schritte (mit Bildern)

Video: So überprüfen Sie Null in C: 7 Schritte (mit Bildern)
Video: Gimp Bildgröße ändern / Bilder skalieren ✅ Tutorial [Deutsch/HD] 2024, Kann
Anonim

In C ist NULL eine symbolische Konstante, die immer auf einen nicht existierenden Punkt im Speicher zeigt. Obwohl viele Programmierer es gleich 0 behandeln, ist dies eine Vereinfachung, die Sie später zum Stolpern bringen kann. Am besten überprüfen Sie Ihre Zeiger direkt gegen NULL und verwenden Sie 0 in anderen Kontexten. Dadurch bleibt Ihr Code sauber und leicht verständlich, da Sie jedes Mal wissen, dass Sie mit Zeigern arbeiten, wenn Sie NULL sehen.

Schritte

Teil 1 von 2: Durchführen einer Nullprüfung

Überprüfen Sie Null in C Schritt 1
Überprüfen Sie Null in C Schritt 1

Schritt 1. Verwenden Sie den standardmäßigen Nullprüfcode

Das Folgende ist die naheliegendste Methode, um eine Nullprüfung zu schreiben. Wir verwenden ptr in diesem Artikel als Name des Zeigers, den Sie überprüfen.

  • if(ptr == NULL)

    {

    // Code wenn Zeiger NULL ist

    } anders {

    // Code wenn nicht NULL

    }

Überprüfen Sie Null in C Schritt 2
Überprüfen Sie Null in C Schritt 2

Schritt 2. Testen Sie auf einen beliebigen Wert außer NULL

Manchmal ist es bequemer, stattdessen auf Ungleichheit zu testen. Keine Überraschungen hier:

  • if (ptr != NULL) {

    // Code wenn nicht NULL

    }

Überprüfen Sie Null in C Schritt 3
Überprüfen Sie Null in C Schritt 3

Schritt 3. Schreiben Sie zuerst die NULL, um Fehler zu vermeiden (optional)

Der Hauptnachteil der Methode PTR == NULL besteht darin, dass Sie stattdessen versehentlich ptr = NULL eingeben und diesem Zeiger den NULL-Wert zuweisen. Dies kann starke Kopfschmerzen verursachen. Da das Testen auf (Un-)Gleichheit die Operanden symmetrisch behandelt, können Sie genau das gleiche Ergebnis erhalten, indem Sie schreiben if (NULL == ptr) stattdessen. Dies ist typosicherer, da ein versehentliches NULL = ptr einen einfachen Kompilierungsfehler erzeugt.

Das sieht für manche Programmierer etwas umständlich aus, ist aber absolut gültig. Welchen Ansatz Sie verwenden, hängt nur von Ihren persönlichen Vorlieben ab und wie gut Ihr Compiler den Fehler if (ptr = NULL) erkennt

Überprüfen Sie Null in C Schritt 4
Überprüfen Sie Null in C Schritt 4

Schritt 4. Testen Sie, ob die Variable wahr ist

Eine einfache wenn (ptr) testet, ob ptr WAHR ist. Es wird FALSE zurückgegeben, wenn ptr NULL ist oder wenn ptr 0 ist. Die Unterscheidung spielt in vielen Fällen keine Rolle, aber beachten Sie, dass diese nicht in allen Architekturen identisch sind.

Das Gegenteil davon ist wenn (!ptr), die TRUE zurückgibt, wenn ptr FALSE ist.

Teil 2 von 2: Fehler vermeiden

Überprüfen Sie Null in C Schritt 5
Überprüfen Sie Null in C Schritt 5

Schritt 1. Setzen Sie einen Zeiger, bevor Sie auf NULL prüfen

Ein häufiger Fehler besteht darin, anzunehmen, dass ein neu erstellter Zeiger einen NULL-Wert hat. Das ist nicht wahr. Ein nicht zugewiesener Zeiger zeigt immer noch auf eine Speicheradresse, nur nicht auf eine, die Sie angegeben haben. Es ist gängige Praxis, neu erstellte oder neu freigegebene Zeiger auf NULL zu setzen, um sicherzustellen, dass Sie diese nicht hilfreiche Adresse nicht versehentlich verwenden.

  • Vermeiden Sie diesen Fehler:

    Zeichen *ptr;

    if(ptr == NULL)

    {

    //Dies wird FALSE zurückgeben. Dem Zeiger wurde ein gültiger Wert zugewiesen.

    }

  • Schreiben Sie stattdessen:

    char *ptr = NULL; //Dies weist den Zeiger auf NULL zu

    if(ptr == NULL)

    {

    //Dies gibt TRUE zurück, wenn der Zeiger nicht neu zugewiesen wurde.

    }

Überprüfen Sie Null in C Schritt 6
Überprüfen Sie Null in C Schritt 6

Schritt 2. Achten Sie auf Funktionen, die NULL zurückgeben könnten

Wenn eine Funktion NULL zurückgeben kann, überlegen Sie, ob dies möglich ist und ob dies später in Ihrem Code zu Problemen führen würde. Hier ist ein Beispiel für die malloc-Funktion mit der Nullprüfung (wenn (ptr)), um sicherzustellen, dass nur Zeiger mit gültigen Werten verarbeitet werden:

  • int *ptr = malloc(N * sizeof(int));

    wenn (ptr) {

    int ich;

    für (i = 0; i < N; ++i)

    ptr = i;

    }

Überprüfen Sie Null in C Schritt 7
Überprüfen Sie Null in C Schritt 7

Schritt 3. Verstehen Sie, dass NULL 0 ist, aber Sie sollten aus Gründen der Übersichtlichkeit immer NULL anstelle von 0 verwenden, wenn Sie mit Zeigern arbeiten

Historisch gesehen hat C NULL als die Zahl 0 (dh 0x00) dargestellt. Heutzutage kann es etwas komplizierter werden und variiert je nach Betriebssystem. Sie können normalerweise mit. nach NULL suchen ptr == 0, aber es gibt Fälle, in denen dies zu Problemen führen kann. Noch wichtiger ist vielleicht, dass die Verwendung von NULL deutlich macht, dass Sie mit Zeigern für andere Personen arbeiten, die Ihren Code lesen.

Tipps

Sie können diese Eincheck-While-Schleifen wie alle anderen verwenden: while (NULL == ptr) {

Empfohlen: