指针杀手之野指针

来源:互联网 发布:java架构师实践指南 编辑:程序博客网 时间:2024/04/29 22:23

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;}
0 0
原创粉丝点击