如何避免野指针?

来源:互联网 发布:面朝大海春暖花开 知乎 编辑:程序博客网 时间:2024/05/03 04:51

何为野指针?野指针就是,没有被初始化的指针,会由系统默认一个随机地址的指针。如果不小心使用的野指针,易造成内存泄漏的段错误。给我们的程序造成一定的破坏。

那么,我们该如何避免野指针呢?

首先,我们该养成一些良好的编程习惯。

1、当指针没有指向的地址空间是,初始化为空。这样可以引起程序员调试时的注意程度。

2、当往指针指向的空间赋值时,一定要检查是否有给这个指针分配空间。如果没有,就用malloc函数进行分配空间。

如:char *ptr = (char *) malloc (sizeof(char) * 100);

malloc函数返回的是分配的空间的地址。

3、malloc 分配空间后,一定要进行检查 指针是否为空。

如:

if(ptr == NULL){    printf("malloc error!\n");//分配空间失败    exit(1);}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

4、对空间进行清空,“清扫”掉一些垃圾数据。

如:memset( ptr, '\0', sizeof(char) *100;

5、空间使用完了还要还给系统,所以我们要进行释放内存空间。

如:free (ptr);

6、 最后一步,将刚刚使用的指针置空。

如:ptr= NULL;

0 0
原创粉丝点击