野指针的问题

来源:互联网 发布:发那科pmc编程说明 编辑:程序博客网 时间:2024/04/29 05:57
在进行编程的时候我们有时会遇到一种错误警告:段错误

那么什么是段错误呢?

错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址、访问了系统保护的内存地址、访问了只读的内存地址等等情况

其中一个比较典型的段错误原因就是由野指针导致的。

那么什么又是野指针呢?

野指针是指我们定义时未初始化的指针,因为它在定义时未初始化,所以由系统随机分配一个垃圾值给该指针。这样的指针我们使用起来很容易造成内存泄漏的问题;

那么怎么样才能避免野指针的产生呢?

最根本的办法就是养成一个良好的编码习惯,那怎么才是避免野指针的良好习惯?

1。当野指针未初始化时,将指针置为NULL,(NULL代表内存中的0地址,不能对0地址对应的空间进行操作);

2.  当向指针指向的空间中保存数据时,确保该指针已被分配空间,如果没有被分配可以使用malloc进行分配;

3.检查指针空间是否分配成功,若未成功即退出【exit(1)】;

4.当我们使用完毕后,需要把分配来的地址中的残留数据清空,使用(memset);

5.然后释放分配来的这个空间(free);

6.再将该指针置为NULL;

由此可见,很多时候良好的编码习惯可以帮我们解决很多问题,避免了问题的产生,大大提高了效率;

0 0
原创粉丝点击