Réponse de la FAQ C:
Le Premier de la série 50 utilisées segment 07777, décalage 0 pour le pointeur null, au moins pour PL/I. plus Tard, les modèles utilisés segment 0, offset 0 des pointeurs null en C, ce qui nécessite de nouvelles instructions comme TCNP (Test C Pointeur Null), de toute évidence comme une concession à tous les existants mal écrit le code en C qui fait des hypothèses erronées. Plus âgés, parole adressée Premier machines ont été également connus pour exiger plus d'octets pointeurs (char *s) que la parole, les pointeurs (int *').
L'Éclipse MV série de Données Général a trois architecturalement pris en charge pointeur de formats (word, byte et bit pointeurs), dont deux sont utilisés par les compilateurs C: octet des pointeurs de char * et void *, et de parole des pointeurs pour tout le reste. Pour des raisons historiques au cours de l'évolution de la 32-bits MV ligne à partir de la 16-bits de Nouvelle ligne, mot pointeurs et de l'octet les pointeurs avait le décalage, l'indirection, et l'anneau de protection de bits dans différents endroits de la parole. En passant un mauvais pointeur de format pour une fonction a entraîné des erreurs de protection. Finalement, le MV C compilateur ajoute de nombreuses options de compatibilité pour essayer de traiter avec le code qui avait pointeur incompatibilité de type d'erreurs.
Certains Honeywell-Bull mainframes utiliser le modèle de bits 06000 (interne) pointeurs null.
La CDC Cyber 180 Série a 48 bits pointeurs composé d'un anneau, segment, et le décalage. La plupart des utilisateurs (dans l'anneau 11) ont pointeurs null de 0xB00000000000. Il était courant sur les anciennes CDC ceux-complément de machines à utiliser une de tous les bits de mot comme un drapeau spécial pour tous les types de données, y compris les adresses invalides.
Le vieux HP de la série 3000 utilise un autre système d'adressage par octets d'adresses que pour word adresses; comme plusieurs des machines ci-dessus, il utilise donc des représentations différentes pour char * et non avenu * pointeurs que pour les autres indicateurs.
La Symbolique de la Machine Lisp, marqués de l'architecture, de ne même pas avoir conventionnelle numérique pointeurs; il utilise la paire (en gros une inexistant poignée) comme un C pointeur null.
Selon le `modèle de mémoire" en cours d'utilisation, 8086-famille des processeurs compatibles PC) peut utiliser les données 16-bit pointeurs 32 bits et des pointeurs de fonction, ou vice versa.
Quelque 64 bits Cray machines représentent int * dans les 48 bits d'un mot; char * de plus, utilise une partie de la partie supérieure de 16 bits pour indiquer une adresse de l'octet à l'intérieur d'un mot.
Autres liens: Un message de Chris Torek avec plus de détails sur certaines de ces machines.