当前位置: 首页 > news >正文

函数参数为字符串类型时,默认值设为NULL会报错

一、bug描述

点击查看代码
cv::Mat undistort_image_halcon_cv2(cv::Mat& src, std::string calib_param_file = NULL);
在这里将字符串参数默认值设为NULL,调用这个函数时会报错,发生异常: W32/0xC0000005 Unhandled exception at 0x00007FFF5B86136A (lib_thread_measurement.dll) in test_pixelCalibrate.exe: 0xC0000005: Access violation reading location 0x0000000000000000.

二、原因分析

原因时类型不匹配,使用NULL(本质是#define NULL 0)时,编译器会尝试使用空指针初始化std::string对象
然而std::string类型的构造函数在接收const char *类型时,要求指针必须指向C风格字符串(包括空字符'\0',但NULL指针不指向任何有效的字符串内存,当使用std::String的构造函数访问时,自然会出发内存访问异常

三、解决方法

将默认值设成空字符""

http://www.vanclimg.com/news/292.html

相关文章:

  • 中电金信:源启研发协同一体化平台、源启混沌工程平台通过信通院可信云最高级评估
  • LGP9310 [EGTS 2021] Luna likes Love 学习笔记
  • 使用Amazon Q和MCP优化深度学习环境
  • Linux 系统硬盘命名规则详细解析
  • 【LeetCode 160】算法:相交链表 —— 双指针法和数学法
  • cgroup机制
  • ls | tee 1.txt 如何拿到ls的返回值$?
  • 深入浅出:Clang中的控制流完整性(CFI)技术解析
  • 工业互联网甄选联盟会员组织正式成立,合作共赢
  • VK16K33AQ QNF28小体积封装大电流LED驱动电子烟LED屏显方案
  • HelloWorld
  • 颠覆性应用指南:EtherCAT转PROFINET网关的工业场景核爆方案大全
  • 如何将 Markdown格式文章快速发布到微信公众号.240516
  • Maven 镜像配置文件 maven-settings.xml
  • 图论
  • 开源能源管理系统:数字化时代能源安全与效能提升的核心引擎
  • 四.分支语句的简单应用
  • 使用AnythingLLM本地化投喂文件,简单三步快速本地化部署DeepSeek满血版看这篇!.250304
  • 循环for、while
  • 最小斯坦纳树
  • 浏览器跨标签页通信
  • 以太坊开发指南:SendTransaction vs CallContract 的区别与错误处理实践 - 若
  • Ntpdate系统时间同步
  • oracle 自增id
  • 接地气的软件开发流程.240618
  • 接地气的代码版本管理流程.240617
  • sersync同步
  • deepseek本地部署硬件资源对比表.250303
  • 【API接口】最新可用手机号归属地查询接口
  • NFS安装配置