菜鸟的提问——关于野指针
时间:2011-12-04
来源:互联网
最近看了一本书其中提到野指针。我的问题如下:
问1:作为一个菜鸟,怎样才能杜绝野指针的出现?
问2:野指针的出现在内存中是呈现一个什么样的景观?
问3:在用完new(或调用malloc()函数)之后,将内存用delete(或free()函数)释放后,是否还要将其设置为NULL指针?
问4:是否野指针一旦出现程序就会报错?如果不报错,那将怎样才能发现?
(我自己暂时就想到这么多。欢迎高手补充)
问1:作为一个菜鸟,怎样才能杜绝野指针的出现?
问2:野指针的出现在内存中是呈现一个什么样的景观?
问3:在用完new(或调用malloc()函数)之后,将内存用delete(或free()函数)释放后,是否还要将其设置为NULL指针?
问4:是否野指针一旦出现程序就会报错?如果不报错,那将怎样才能发现?
(我自己暂时就想到这么多。欢迎高手补充)
作者: alived_s 发布时间: 2011-12-04
我也是菜鸟,说说我的认识。O(∩_∩)O~
1.在声明指针的时候尽量把它指向NULL,例如:int *p = NULL;
2.这个好像跟这块地址的具体值有关,随机的吧。
3.貌似不用了,还没看过free()函数的实现,这点不太清楚。
4.可能会出错,也可能正常。
欢迎指正~
1.在声明指针的时候尽量把它指向NULL,例如:int *p = NULL;
2.这个好像跟这块地址的具体值有关,随机的吧。
3.貌似不用了,还没看过free()函数的实现,这点不太清楚。
4.可能会出错,也可能正常。
欢迎指正~
作者: moonclock 发布时间: 2011-12-04
养成良好习惯 谁分配谁delete并设NULL
假如初始化指针的时候没有new或者指向正确的东西最好设NULL
delete后也设NULL
假如初始化指针的时候没有new或者指向正确的东西最好设NULL
delete后也设NULL
作者: sryan 发布时间: 2011-12-04
引用 1 楼 moonclock 的回复:
我也是菜鸟,说说我的认识。O(∩_∩)O~
1.在声明指针的时候尽量把它指向NULL,例如:int *p = NULL;
2.这个好像跟这块地址的具体值有关,随机的吧。
3.貌似不用了,还没看过free()函数的实现,这点不太清楚。
4.可能会出错,也可能正常。
欢迎指正~
我也是菜鸟,说说我的认识。O(∩_∩)O~
1.在声明指针的时候尽量把它指向NULL,例如:int *p = NULL;
2.这个好像跟这块地址的具体值有关,随机的吧。
3.貌似不用了,还没看过free()函数的实现,这点不太清楚。
4.可能会出错,也可能正常。
欢迎指正~
同意楼上部分观点,对于第3点,我认为delete或是free()后的指针,应该赋值为NULL,这是一个良好的习惯。如果你在程序中间使用delete或者free()而不把指针赋值为NULL,有可能你在继续编写代码时,不知道这个指针已经delete了,然后又去使用,这样有可能程序正常,但结果有问题,这样就不方便调试了,因为你不知道是程序有问题还是算法有问题,调试起来没有针对性,耗时!
作者: wumuzi520 发布时间: 2011-12-04
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28