来源:《CPrimer Plus (第六版)》10.5指针操作
一定要牢记一点:千万不要解引用未初始化的指针。例如,考虑下面的例子:
- int *pt; // 未初始化的指针
- *pt = 5; // 严重的错误。
为何不行?第2行的意思是把5储存在pt指向的位置。但是pt未被初始化,其值是一个随机值,所以不知道5将储存在何处。这可能不会出什么错,也可能会擦写数据或代码,或者导致程序崩溃。
切记:创建一个指针时,系统只分配了储存指针本身的内存,并未分配储存数据的内存。
因此,在使用指针之前,必须先用已分配的地址初始化它。
例如,可以用一个现有变量的地址初始化该指针(使用带指针形参的函数时,就属于这种情况)。或者还可以使用第12章将介绍的malloc()函数先分配内存。
无论如何,使用指针时一定要注意,不要解引用未初始化的指针!