Интересно, делает ли это:
void *ptr = NULL;
printf("%p\n", ptr);
Всегда будет выдавать вывод (nil)
?
Это зависит от стандартной реализации библиотеки или стандартной спецификации C99?
Интересно, делает ли это:
void *ptr = NULL;
printf("%p\n", ptr);
Всегда будет выдавать вывод (nil)
?
Это зависит от стандартной реализации библиотеки или стандартной спецификации C99?
В моей системе это дает (null)
, поэтому я предполагаю, что она определена. В более общем плане все %p
-печатки определяются реализацией:
7.21.6.1
Аргумент должен быть указателем на void. Значение указателя преобразуется в последовательность печатных символов, в определенным образом.
Всегда будет указывать (nil)?
Совсем нет. На моей машине (Mac с i686-apple-darwin11-llvm-gcc-4.2
) он печатает 0x0
.