C++指针、空指针、野指针使用的一些总结

标签: c 指针
11人阅读 评论(0) 收藏 举报

野指针

  • 野指针:未被初始化的指针,野指针所导致的错误和迷途指针非常相似,但野指针的问题更容易被发现。

空指针

  • 空指针:就是一个被赋值为0的指针,它不指向任何的对象或者函数。

1、使用指针的第一件事就是需要看这个指针是否是空指针(坚决不能使用空指针,否则程序就会蹦。意思就是:为一个指针赋值为空指针是不会报错的:char*p;但是在使用的时候一定要判断是否为空指针(即该指针有没有指向),不为空才能操作)

判断空指针的方法:if(p!=nullptr){};//nullptr是空指针的意思//若明确指针该指针有指向,则不需要做判断,若不知道,则要做判断

2、一个指针不是空指针和野指针就是正常指针。

3、string *namevec;//假定此时是空指针,this->namevec=another;//此时跟another指向同一个内存


4、string *namevec;//假定此时是空指针,another=this->namevec;//此时跟namevec指向了空指针


5、图中打问号的地方内存是否一定存在呢?name是一个容器


答:如图,在c++中,容器没有new,只能是在栈上


又如图:new出来的新内存指向情况



6、eg:char *p;//在使用指针的时候都要分配内存么?

答:不是说使用指针的时候都要分配内存,而是使用指针的时候真正一定要有指向。只能说只有在有指向的时候使用,没有指向的时候千万不能使用。指针其实很简单,只要知道指向了哪?就没有问题了。

7、在使用指针的时候一定要画内存,画内存也就是让你知道指针到底指向的是哪里,到底是不是你想指的方向。

8、指针使用的几个原则:

第一:无法确定是否是空指针前一定要判断

第二:哪个(也就是类)申请的,哪个释放,同时释放的时候需要指向nullptr,否则就是野指针

第三:后面衍生出一种叫智能指针的(不用释放,自动释放)

第四:指针申请了内存一定要释放,哪个申请哪个释放






查看评论

C++之失控指针、迷途指针、野指针、悬浮指针及空指针[转]

原文:C++基础—失控指针、迷途指针、野指针、悬浮指针及空指针指针就是用来保存内存地址的变量,因此定义了一个指针后就要给它赋一个地址,或初始化为空指针。使用delete释放掉指针指向的内存后,不再使用...
  • u011475134
  • u011475134
  • 2017年08月06日 23:45
  • 214

C++基础---失控指针、迷途指针、野指针、悬浮指针及空指针

1. 失控指针、迷途指针、野指针、悬浮指针及空指针 1.1 失控指针 失控指针:也称迷途指针、野指针、悬浮指针。 失控指针:指的是不指向任何合法的对象的指针,可以指向任何地址,并且对该地址的数值进...
  • cainv89
  • cainv89
  • 2015年08月16日 12:02
  • 1268

C++中野指针和空指针和无类型指针

所谓的野指针指的
  • cgl1079743846
  • cgl1079743846
  • 2014年05月26日 10:00
  • 2216

指针,野指针,空指针,赋值?

bug中最可怕的是野指针,那么问题来了,野指针是什么?是如何产生的?为什么程序员会“忘记”? 昨天调试时,我发现了一个野指针,由此我明白了。 a的值成了乱码,而且gcc编译器并没有...
  • qq_33594960
  • qq_33594960
  • 2016年09月25日 07:32
  • 822

【C++进阶】C++中的空指针和野指针

空指针常量,空指针,空指针赋值区以及野指针及其形成原因
  • fu_zk
  • fu_zk
  • 2014年03月12日 23:43
  • 14271

void* 指针、NULL指针、零指针、野指针、悬垂指针

原文链接:http://www.jianshu.com/p/2062bf912a59 字数305 阅读173 评论0 喜欢3 void* 类型指针:通用变体类型指针;可以不经转换,赋给其他指针,函数指...
  • ForestRound
  • ForestRound
  • 2016年10月01日 16:31
  • 485

空悬指针和野指针的区别(the difference between dangling pointer and wild pointer)

看c++知识不短时间了,原来一直不知道空悬指针和野指针什么区别,一直以为它们是一个意思,而且不靠谱的度娘也没给我靠谱的解释。在yahoo answers看到了很不错的解释: A dangling p...
  • eszrdxtfcygv
  • eszrdxtfcygv
  • 2014年08月12日 23:11
  • 1800

野指针错误实例

野指针,也就是指向不可用内存区域的指针。通常对这种指针进行操作的话,将会使程序发生不可预知的错误。 这是野指针的定义,但很多C语言新手对它还是很陌生,下面我就简单举一个例子来看一看。在VC6.0中输...
  • eifjgoergfgrgr
  • eifjgoergfgrgr
  • 2014年07月04日 09:39
  • 1729

野指针和内存泄漏以及内存溢出总结

野指针(Wild Pointer ): 指向一个已删除的对象或未申请访问受限内存区域的指针。与空指针不同,野指针无法通过简单地判断是否为 NULL避免,而只能通过养成良好的编程习惯来尽力减少。...
  • zhanghuaichao
  • zhanghuaichao
  • 2016年10月31日 15:35
  • 810

悬挂指针与野指针

悬挂指针/Dangling Pointers/迷途指针/悬垂指针 野指针/Wild Pointers
  • chunyexiyu
  • chunyexiyu
  • 2016年09月29日 12:38
  • 607
    个人资料
    持之以恒
    等级:
    访问量: 1377
    积分: 241
    排名: 31万+
    文章分类
    文章存档