指向未初始化内存的指针将导致错误。引用此类指针表示无效地址。
int *pi;
printf("%i\n",*pi);
上面的代码导致使用未初始化的变量错误。
error: ‘pi’ is used uninitialized in this function
但是,首先打印地址时,似乎指针由有效地址初始化但填充了无效数据
int *pi;
printf("%p\n",&pi); //address printing
printf("%i\n",*pi);
打印出来:
0x7ffeea9313c8 //valid virtual address
-125990072 //invalid data
问题:
运算符 (&) 的地址是否初始化指针?如果不是,请纠正错误的理解。