Путаница в том, что неинициализированный указатель указывает куда угодно
#include <stdio.h>
int main(void)
{
int *ptr;
printf("%p", ptr); // Error: uninitialized local variable 'ptr' used
// Output is "0"
}
я читаюC-FAQ о нулевом указателе. И это говорит о том, что неинициализированный указатель может указывать куда угодно. Означает ли это, что это указывает на случайное расположение в памяти? Кроме того, если это утверждение верно, почему возникает ошибка, если я пытаюсьprintf("%p",ptr)
? Так как неинициализированный указательptr
указывает на какое-то случайное место, кажется, что оно должно распечатать это случайное место!