避免野指针&&间接赋值

/**************************
避免产生野指针的三个步骤。
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);
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值