p>En C, NULL est une constante symbolique qui pointe toujours vers un point inexistant dans la mémoire. Bien que de nombreux programmeurs le traitent comme égal à 0, câest une simplification qui peut vous faire trébucher plus tard. Il est préférable de vérifier vos pointeurs par rapport à NULL directement, et dâutiliser 0 dans dâautres contextes. Cela permet de garder votre code propre et facile à comprendre, puisque vous saurez que vous travaillez avec des pointeurs à chaque fois que vous voyez NULL.
Tester pour toute valeur autre que NULL. Parfois, il est plus pratique de tester lâinégalité à la place. Pas de surprises ici :
Placez un pointeur avant de vérifier NULL. Une erreur courante est de supposer quâun pointeur nouvellement créé a une valeur NULL. Ce nâest pas vrai. Un pointeur non assigné pointe toujours vers une adresse mémoire, mais pas ce! lle que vous avez spécifiée. Câest une pratique courante de régler les pointeurs nouvellement créés ou nouvellement libérés sur NULL pour sâassurer que vous nâutilisez pas cette adresse inutile par accident.
Vérifiez si la variable est vraie. Un simple si (ptr) teste si ptr est VRAI. Elle retournera FALSE si ptr est NULL, ou si ptr est 0, la distinction nâa pas dâimportance dans de nombreux cas, mais sachez que celles-ci ne sont pas identiques dans toutes les architectures.
Utilisez le code de contrôle de null standard. Ce qui suit est la manière la plus évidente dâécrire un chèque nul. Nous utiliserons ptr dans cet article comme nom du pointeur que vous vérifiez.
Ecrivez dâabord le NULL pour éviter les erreurs (facultatif). Le principal inconvénient de la méthode PTR == NULL est la possibilité que vous tapiez accidentellement ptr = NULL à la place, assignant la valeur NULL à ce pointeur. Cela peut causer un mal de tête i! mportant. Puisque le test pour (in)égalité traite les opéra! ndes symétriquement, vous pouvez obtenir exactement le même résultat en écrivant if (NULL == ptr) à la place. Ceci est plus résistant aux fautes de frappe, puisquâun NULL = ptr accidentel crée une simple erreur de compilation.
Faites attention aux fonctions qui pourraient retourner NULL. Si une fonction peut retourner NULL, demandez-vous si câest une possibilité, et si cela causerait des problèmes plus tard dans votre code. Voici un exemple de la fonction malloc utilisant le contrôle null check (si (ptr)) pour sâassurer quâelle ne gère que les pointeurs avec des valeurs valides :
Comprenez que NULL est 0 mais vous devez toujours utiliser NULL au lieu de 0 lorsque vous travaillez avec des pointeurs pour plus de clarté. Historiquement, C représentait NULL comme le nombre 0 (câest-à -dire 0x00). De nos jours, cela peut devenir un peu plus compliqué, et cela varie selon le système dâexploitation. Vous pouvez généralement vérifier NULL e! n utilisant ptr == 0, mais il y a des cas de coin où cela peut causer un problème. Peut-être plus important encore, lâutilisation de NULL rend évident le fait que vous travaillez avec des pointeurs pour dâautres personnes lisant votre code.
No comments:
Post a Comment