Menu
Coddy logo textTech

Pointeurs nuls

Fait partie de la section Logique et Flux du Journey C++ de Coddy. Leçon 4 sur 56.

Lorsque vous déclarez un pointeur, il ne pointe pas automatiquement vers quelque chose de pertinent. Un pointeur non initialisé contient des adresses mémoire aléatoires, ce qui peut entraîner de graves erreurs si vous essayez de l'utiliser. C'est là que les pointeurs nuls deviennent essentiels pour une programmation sûre.

A null pointer est un pointer qui pointe explicitement vers rien. En C++ moderne, vous créez un null pointer en l’initialisant avec nullptr :

int* ptr = nullptr;  // ptr est maintenant un pointeur nul

Le mot-clé nullptr indique que le pointeur ne pointe vers aucun emplacement mémoire valide. Cela est beaucoup plus sûr que de laisser un pointeur non initialisé, car vous pouvez vérifier si un pointeur est nul avant d’essayer de le déréférencer.

Avant d’utiliser un pointeur, vous devez vérifier qu’il n’est pas nul à l’aide d’une simple instruction if :

if (ptr != nullptr) {
    // Il est sûr d'utiliser *ptr ici
    int value = *ptr;
}

Cette pratique empêche votre programme de planter en raison de l’accès à des emplacements mémoire invalides. Initialisez toujours les pointeurs à nullptr lorsque vous les déclarez, et vérifiez qu’ils ne sont pas null avant de les déréférencer.

challenge icon

Défi

Facile

Créez un programme qui démontre l’utilisation sûre des pointeurs en vérifiant la présence de pointeurs nuls avant de les déréférencer.

L’entrée suivante sera fournie :

  • Une chaîne qui sera soit "valid", soit "null"

Votre programme doit :

  1. Déclarer une variable entière nommée data et l’initialiser avec la valeur 42
  2. Déclarer un pointeur nommé ptr
  3. Si l’entrée est "valid", affecter l’adresse de data à ptr
  4. Si l’entrée est "null", affecter nullptr à ptr
  5. Utiliser une instruction if pour vérifier que ptr n’est pas nul avant d’essayer de l’utiliser
  6. Si le pointeur n’est pas nul, afficher la valeur vers laquelle il pointe
  7. Si le pointeur est nul, afficher un message de sécurité

Utilisez le format de sortie exact suivant :

Value: [value]

Pour les pointeurs nuls, utilisez ce format :

Pointer is null - cannot dereference

Essayez vous-même

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

int main() {
    // Lire l'entrée
    string input;
    cin >> input;
    
    // Déclarer la variable data
    int data = 42;
    
    // TODO: Écrivez votre code ici
    // - Déclarer un pointeur nommé ptr
    // - Vérifier l'entrée et assigner la valeur appropriée à ptr
    // - Utiliser une instruction if pour vérifier et utiliser le pointeur en toute sécurité
    
    return 0;
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique et Flux

Entraînez-vous par vous-même : Compilateur C++ en ligne