未初始化和非法的指针

来源:互联网 发布:vue.js修改data 编辑:程序博客网 时间:2024/05/16 09:21

下面这个代码段说明了一个极为常见的错误:

int *a;

...

*a = 12 ;

这个声明创建一个名叫a的指针常量,后面那条赋值把12存储在a所指向的内存位置。

警告:

但是究竟a指向哪里呢?我们声明了这个变量,但从未对它进行初始化,所以我们没有办法预测12这个值将存储在什么地方。从这一点看,指针变量和其它变量并无区别。如果变量是静态的,它还被初始化为0;但如果变量是自动的,它根本不会被初始化。无论是哪种情况,声明一个指向整型的指针都不会“创建”用于存储整型的内存空间。