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 pointer, il ne pointe pas automatiquement vers quelque chose de pertinent. Un pointer 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 null pointers deviennent essentiels pour une programmation sûre.

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

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

Le mot-clé nullptr indique que le pointer ne pointe vers aucun emplacement mémoire valid. Cela est beaucoup plus sûr que de laisser un pointer non initialisé, car vous pouvez vérifier si un pointer est null avant de tenter de le dereference.

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

if (ptr != nullptr) {
    // 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 valent pas null avant d’effectuer un déréférencement.

challenge icon

Défi

Facile

Créez un programme qui montre une utilisation sûre des pointer en vérifiant la présence de null avant de les déréférencer.

L’entrée suivante sera fournie :

  • Une string 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 pointer nommé ptr
  3. Si l’entrée est "valid", assigner l’adresse de data à ptr
  4. Si l’entrée est "null", assigner nullptr à ptr
  5. Utiliser une instruction if pour vérifier que ptr n’est pas null avant d’essayer de l’utiliser
  6. Si le pointer n’est pas null, afficher la valeur vers laquelle il pointe
  7. Si le pointer est null, afficher un message de sécurité

Utilisez exactement le format de sortie suivant :

Value: [value]

Pour les pointer null, 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