Sunday, July 19, 2020

Comment vérifier Null in C

Comment vérifier Null in C

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