在C语言中指针初始化时可能出现内存地址错误的问题,好多同学在初学是会出现这种情况,初始化主要是分为两种:直接初始化和通过函数传参数进行初始化。看下面例子:
1.直接初始化
int *p;//int类型
*p = 2;
------------------------------
struct List *p;//struct类型
p = (strcut List*)malloc(sizeof(struct List));
2.函数传参初始化
struct List *L;//定义指针
struct List * init_point(struct List *L){
L=(Sqlist *)malloc(sizeof(struct List));//初始化
return L;
}
注意:在c语言中通过函数形式进行指针初始化时,函数要有对应指针的返回值,因为函数里的指针只是一个副本,并没有真的给到定义都指针变量。(如果不写返回指针会出现内存访问错误的问题)