本节书摘来自异步社区出版社《从缺陷中学习C/C++》一书中的第6章,第6.15节,作者: 刘新浙 , 刘玲 , 王超 , 李敬娜 , ,更多章节内容可以访问云栖社区“异步社区”公众号查看。

6.15 试图产生的指针很可能不存在

从缺陷中学习C/C++
代码示例

void func(const int* pInt, size_t size){size = *pInt;cout << "size:" << size << endl;
}
int main(){vector<int>veclnt;func(&veclnt[0], 4);return 0;
}

现象&后果
程序运行时,产生core dump。

Bug分析
在程序中,vectorveclnt定义了一个没有初始化的vector变量veclnt,因此,veclnt只是一个没有内存空间的空vector对象。调用函数func时,&vecInt作为参数,此时就产生了一个不存在的指针。因此,在函数func内对其进行取值操作时,导致程序core dump。

正确代码

int main(){
int func(const int* pInt, size_t size)
{if (pInt == NULL) return -1;
}

编程建议
使用指针前需要判断指针是否为NULL,避免空指针导致的程序异常。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

《从缺陷中学习C/C++》——6.15 试图产生的指针很可能不存在相关推荐

  1. 《从缺陷中学习C/C++》导读

    前言 从缺陷中学习C/C++ 这是一本在研究大量C/C++程序Bug基础上集结而成的书! 这是一本汇集众多一线C/C++编程人员智慧的书! 这是一本让您学好C/C++,绕过编程陷阱和障碍的必备案头书! ...

  2. 《从缺陷中学习C/C++》——6.18 小结

    本节书摘来自异步社区出版社<从缺陷中学习C/C++>一书中的第6章,第6.18节,作者: 刘新浙 , 刘玲 , 王超 , 李敬娜 , ,更多章节内容可以访问云栖社区"异步社区&q ...

  3. 《从缺陷中学习C/C++》——6.3 数组传参时的sizeof

    本节书摘来自异步社区出版社<从缺陷中学习C/C++>一书中的第6章,第6.3节,作者: 刘新浙 , 刘玲 , 王超 , 李敬娜 , ,更多章节内容可以访问云栖社区"异步社区&qu ...

  4. 东北农大: 邻苯二甲酸酯会导致十二指肠屏障缺陷中的微生物群-屏障-免疫交互的破坏...

    编译:杨天宁,编辑:微科盟居居.江舜尧. 微科盟原创微文,欢迎转发转载,转载须注明来源<微生态>公众号. 导读 邻苯二甲酸酯是常见的塑化剂,邻苯二甲酸二(2-乙基己基)酯(DEHP)是一种 ...

  5. 一文弄懂元学习 (Meta Learing)(附代码实战)《繁凡的深度学习笔记》第 15 章 元学习详解 (上)万字中文综述

    <繁凡的深度学习笔记>第 15 章 元学习详解 (上)万字中文综述(DL笔记整理系列) 3043331995@qq.com https://fanfansann.blog.csdn.net ...

  6. 分享Silverlight/WPF/Windows Phone一周学习导读(8月15日-8月19日)

    分享Silverlight/WPF/Windows Phone一周学习导读(8月15日-8月19日) 本周Silverlight学习资源更新: Silverlight Tools 4安装时的错误提示 ...

  7. 图神经网络的二阶池化:从节点表示中学习图的表示

    ©PaperWeekly 原创 · 作者|石壮威 学校|南开大学硕士生 研究方向|机器学习.图神经网络 本文 [1] 提出图神经网络的二阶池化方法,用以从节点表示中学习图的表示.与现有的图池化方法相比 ...

  8. Silverlight/Windows8/WPF/WP7/HTML5周学习导读(10月15日-10月21日)

    Silverlight/Windows8/WPF/WP7/HTML5周学习导读(10月15日-10月21日) 本周Silverlight学习资源更新 Silverlight + DomainServi ...

  9. 论文浅尝 | 从具有数值边缘属性的知识图谱中学习嵌入

    论文笔记整理:朱珈徵,天津大学硕士 链接:https://www.ijcai.org/proceedings/2021/0395.pdf 动机 从遗传数据到社会网络,在越来越多的场景下与知识图谱边缘相 ...

最新文章

  1. htc desire 10 pro android 8.0,HTC Desire 10 pro手机:可能是Desire系列最好的手机
  2. 线程的几种状态_拜托:不要再问我线程有多少种状态了
  3. Java常见容器(Container)关系图
  4. Perl sendmail
  5. 2017和2019对比图刷屏,真实扎心!苹果中国女老板也跟风晒图...
  6. php_self include,PHP_SELF返回/index.php/index.php
  7. 华为开发者大会2020(Together)精彩集锦
  8. iOS开发:2分钟快速集成支付宝快捷支付
  9. 关于搭建k8s集群遇到的问题与解决方法
  10. Bzoj4698: [Sdoi2008]Sandy的卡片
  11. iPhone尺寸大全(包含iPhone14系列)
  12. iOS 图标和文字自定按钮
  13. Win7从文件服务器复制文件速度慢问题处理
  14. restapi是什么意思_网上整理的对于Rest和Restful api的理解
  15. 面试题:堆、栈、队列的区别以及使用场景
  16. Integrating Factor
  17. 最逼近Mac OS的Linux系统 -- Elementary OS
  18. 对接银联商务微信公众号支付遇到的坑
  19. 2.4.2 算术逻辑单元的功能和结构(改进)
  20. 【源码解读】Transformer的Scaled dot product部分详解

热门文章

  1. SpringCloud中Hystrix容错保护原理及配置,看它就够了!
  2. 永远不要在代码中使用「User」这个单词!
  3. 机器学习模型调优总结!
  4. 数据分析之Pandas缺失数据处理
  5. 只需一行代码,纯文本秒变Markdown
  6. 拼手速抢红包!送大家现金红包!
  7. 分离硬件和代码、稳定 API,PyTorch Lightning 1.0.0 版本正式发布
  8. 收下这份来自GitHub的神器,一图搞定Matplotlib!
  9. 收藏一波:常用正则表达式公式总结
  10. 程序员崩溃的10个瞬间