在使用指针时如果出现了错误,第一步我们首先检查指针是否正确的进行了初始化。指针总是指向一个地址的,因此在检查初始化是否正确的时候,
可以关注一下,“=”号的右边是不是一个地址。
指针的初始化主要有两大类方法:
一是给指针变量初始化一个在内存中已经存在的地址;二是通过指针变量申请一块新的内存并赋初值。
接下来从几个方面来详细列出:
一是给指针变量初始化一个在内存中已经存在的地址,常用的有以下几种方法:
1.变量的地址:
int a = 10;
int * p = NULL;
p = &a;
这两句等价于 int * p = &a;
2.地址常量
将指针常量赋给一个指针
如:long p = (long)(unsigned long)0xfffffff0;
3.数组的地址
char ary[100];
char *cp = ary;
4.字符串常量
char *cp = “abcdefg”;
对于一个不确定要指向何种类型的指针,在定义它之后最好把它初始化为NULL,并在解引用这个指针时对它进行检验,防止解引用空指针。另外,为程序中任何新创建的变量提供一个合法的初始值是一个好习惯,它可以帮你避免一些不必要的麻烦。
二是通过指针变量申请一块新的内存即动态内存分配
1.采用malloc函数与free函数,这时需要包含<stdlib.h>