指针杀手之野指针

1、野指针的概念:随机指向内存的指针;
2、野指针的危害:造成内存泄漏,引起段错误;(有的时候会不造成内存泄漏,这种特殊情况是不能认为控制的,时好时坏令人茫然。)
3、如何避免野指针:养成良好的编码规范;
(1)当指针未初始化时,要对指针进行初始化,可初始化为空;
(2)当给指针指向的空间赋值时,一定要给该指针分配空间;
(3)当给一个指针分配空间时,一定要检查该指针的空间是否分配成功;
(4)当分配好内存空间时,一定要对该内存空间初始化;
(5)当空间用完之后,一定要把该空间还给系统,释放其内存空间;
(6)当指针的内存空间释放后,一定要再次给该指针初始化,可以初始化为空;
代码例如下:

#include<stdio.h>

int main()
{
    char *p = NULL;

    p = (char *)malloc(sizeof(char) * 100);

    if(p == NULL)
    {
        printf("malloc error!\n");
    }

    p = "hello world";

    printf("The string is %s\n",p);

    free(p);

    p = NULL;

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值