/**************************
避免产生野指针的三个步骤。
1.定义指针时候,初始化为NULL
2.释放指针所指向的内存空间的时候,判断是不是NULL,避免重复释放。
3.释放指针所指向的内存空间后,把指针重置为NULL。************************/
int main01()
{
int *p =NULL;
P = (int *)malloc(100*sizeof(int));
if(p != NULL)
{
free(p);
p = NULL;
}
}
/*****************
间接赋值成立的三个条件:
1.定义一个变量(实参) 定义一个变量(形参)
2.建立关联,将实参取地址传给形参
3.形参去间接地修改实参的值。
使用一个1级指针去修改0级指针的值。
项目开发中一般都是将返回值写入到入口参数中,不会返回一个特定的值,只会返回ret
***************/
/*************************
需要修改自己的程序
1.避免野指针,
2.不要轻易改变形参的值,要引入一个辅助的指针变量,把行参给接过来。
应该修改为第2种方式,这样from的值不会修改。但是所指向的内存空间一定要修改的。如果不对from做修改,可以不用定义一个临时指针变量。
*****************************/
void getstr(char *from , char *to)
{
while(*from ++ = *to ++)
{
printf("from:%s \n",from);
}
}
//应该需要修改为:
void getstr(char *from , char *to)
{
char *tmpfrom = from;
char *tmpto = to;
while(*tempfrom ++ = *tempto ++)
{
printf("from:%s \n",from);
}
}