C语言使用指针前未初始化

在初始化指针之前就使用指针会导致运行时错误,有时候将这种指针称为野指针。下面这个简单的例子声明了一个整数指针,但是使用之前没有为其赋值:

int *pi;
...
printf(“%d\n”,*pi);

下图说明了此时的内存分配情况。

野指针

这里没有初始化pi变量,因此它会包含垃圾数据(在图中用省略号表示)。如果pi中的内存地址超出了应用程序的合法地址空间,这段代码很可能会在执行过程中终止。否则打印出来的就是恰好位于那个地址的数据(不管具体是什么),而且会表示为整数。如果我们用的是字符串指针,就经常会看到打印出奇怪的字符(直到遇到末尾的0才停止)。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程