Verkettete Liste in C

Von Glück würde ich nicht reden, es wäre eher unwahrscheinliches Pech, wenn dem nicht so ist. Aber wer genau wissen will, ob das so ist, kann in stdlib.h nachlesen, wie NULL definiert ist. In C++ dagegen ist tatsächlich definiert, dass ein NULL-Pointer durch 0 bzw. 0L dargestellt wird, siehe beispielsweise C++ - Referenz für NULL.
Und wer ganz sicher sein möchte, kann folgende Zeilen in seine Quelldatei schreiben:
C:
#if NULL!=0 && NULL!=0L
#error 'Inkompatible NULL-Darstellung'
#endif
Das ist nicht richtig. Es gibt immer noch einen Unterschied zwischen der Repräsentation eines Nullzeigers im Speicher und der Repräsentation eines NULL Zeigers im Programmcode. Ein C Compiler wird die Konstante 0 im Programm entsprechend in den Wert übersetzen der als Nullzeiger verwendet wird. Siehe z.B. http://www.lysator.liu.se/c/c-faq/c-1.html#1-10

Gruß
 
Zuletzt bearbeitet:
Zurück