Les pointeurs sont l'un des plus puissants - caractéristiques du langage de programmation C - et les plus difficiles. Lorsque l'on travaille avec des pointeurs, il est souvent nécessaire de convertir entre différents types de pointeurs différents. Parfois, il est possible de convertir directement à partir d'un type à l'autre, mais souvent, surtout dans les programmes complexes, vous trouverez peut-il nécessaire de stocker un pointeur qui a été converti d'un type, mais n'a pas encore été converti à un autre type de pointeur. Dans ce cas, vous aurez besoin d'utiliser un pointeur nul, ce qui représente un pointeur sans type du tout.
Déclarez votre pointeur nul. Pour faire une variable globale ou locale ou d'un champ dans une structure, écrivez "vide p-" sur une ligne vide dans la fonction ou de la structure associée, ou à l'extérieur de toutes les fonctions et les structures pour la rendre globale. Pour ajouter un argument vide de pointeur vers une fonction, écrire "vide p" dans la liste d'argument de la fonction. Dans les deux cas, vous pouvez remplacer la lettre "p" avec un nom de variable de votre choix.
Stocker une valeur dans votre variable de pointeur nul. Si vous avez fait une variable locale ou globale, il suffit d'écrire "p = (void)X-". Remplacer "X" avec le nom du pointeur typé vous souhaitez convertir à un pointeur void. Si vous avez fait un champ de structure, écrivez "s.p = (void)X-". Remplacer "s" avec le nom de la structure et "X" avec le nom du pointeur. Si vous avez fait un argument de fonction, appeler la fonction comme ceci: "f ((void * x))". Remplacer "F" avec le nom de la fonction, et "X" avec le nom du pointeur.
Pour lire la valeur du pointeur de vide et le reconvertir en un pointeur typé, écrivez "x = (Type *) p-", Où "X" est le pointeur typé, "p" est le pointeur de vide et "Type" est le type original du pointeur vous avez stocké dans "p". Soyez prudent pour obtenir le type correct, parce que le compilateur C sera consciencieusement convertir le pointeur sur l'image que vous demandez, si vous avez raison ou non. Cela peut conduire à des bugs subtils qui sont difficiles à résoudre.