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

深圳什么公司做网站好上海seo推广

深圳什么公司做网站好,上海seo推广,wordpress 前台帖子,定制类网站建设前言 最近一直在做QT开发,编程环境是VS2017和QT5.11.2 经常遇到的问题就是,在VS中调试程序,前面都是正常运行的,但是当关闭窗口,退出程序的时候,VS会抛出一个异常 “未加载ntdll.pdb,触发了一…

前言

最近一直在做QT开发,编程环境是VS2017和QT5.11.2

经常遇到的问题就是,在VS中调试程序,前面都是正常运行的,但是当关闭窗口,退出程序的时候,VS会抛出一个异常 “未加载ntdll.pdb,触发了一个断点” ,“未加载ucrtbase.pdb,0x00007FF8E2F1DF28 (ucrtbase.dll) (Test.exe 中)处有未经处理的异常: 将一个无效参数传递给了将无效参数视为严重错误的函数” 等等类似的未加载xxx.pdb的错误。
在这里插入图片描述

这种错误产生的原因就是由于发生了未定义的行为。

未定义行为

  • 未定义的行为是什么?
    在C++(以及其他编程语言)中,“未定义的行为”(Undefined Behavior,简称 UB)是指语言标准没有为某些代码行为提供明确的规范或定义,因此编译器不必为这种行为提供任何特定的支持或保证。
    当代码触发未定义的行为时,可能会发生以下情况之一(或更多):
    • 程序崩溃:例如,通过无效指针引用内存;
    • 不可预测的输出:程序可能会产生意外的结果;
    • 随机行为:程序在不同的运行或在不同的平台上可能表现不同;
    • 安全漏洞:攻击者可能会利用未定义的行为来执行恶意操作;
    • 似乎“正常”工作:有时,未定义的行为可能不会立即显现出任何问题,但这不意味着问题不存在。在不同的情况、不同的编译器优化级别或不同的平台上,问题可能会突然显现。
  • 一些常见的引起未定义行为的操作包括:
    • 解引用空指针;
    • 访问越界的数组元素;
    • 读取未初始化的变量;
    • 对一个对象使用 delete 多次;
    • 整数溢出(在某些情况下,例如有符号整数)。

产生原因以及解决

现在我说下我遇到的产出未定义行为的两个原因以及解决方法。

原因一:尝试删除同一个实例两次

我在代码中使用了QT的第三方库QWT,我在给我的qwtPlot设置坐标轴的时候,使用了下面的语句。

QwtLinearScaleEngine* scaleEngine = new QwtLinearScaleEngine();
scaleEngine->setAttribute(QwtScaleEngine::Floating);
ui->qwtPlot->setAxisScaleEngine(QwtPlot::xBottom, scaleEngine);
ui->qwtPlot->setAxisScaleEngine(QwtPlot::yLeft, scaleEngine);

这样会产生一个异常:
在这里插入图片描述
产生的原因是:
我为代码中的 Qwt 创建了一个新的 QwtLinearScaleEngine 并设置了其属性,然后将其设置为 qwtPlot 的两个轴(xBottom 和 yLeft)的比例尺引擎。问题在于我为两个不同的轴使用了相同的比例尺引擎实例。当 qwtPlot 在程序结束或其析构函数中被销毁时,它将尝试删除与其关联的资源。这意味着它可能会尝试删除同一个 scaleEngine 实例两次,这会导致未定义的行为。

解决的方法也很简单:
让两个坐标轴使用不同的比例尺引擎实例即可。

QwtLinearScaleEngine* scaleEngine1 = new QwtLinearScaleEngine();
QwtLinearScaleEngine* scaleEngine2 = new QwtLinearScaleEngine();
scaleEngine1->setAttribute(QwtScaleEngine::Floating);
scaleEngine2->setAttribute(QwtScaleEngine::Floating);
ui->qwtPlot->setAxisScaleEngine(QwtPlot::xBottom, scaleEngine1);
ui->qwtPlot->setAxisScaleEngine(QwtPlot::yLeft, scaleEngine2);

成功解决问题。

原因二:使用fclose关闭一个“ nullptr” 文件指针

我在代码中定义了一个文件指针FILE* fp,并且初始化为nullptr

FILE* fp = nullptr;

在析构函数中,我直接使用fclose(fp)来关闭了这个文件指针,这样在退出程序时会产生异常:
在这里插入图片描述
产生的原因是:
在 C 标准库中,尝试使用 fclose 关闭一个 nullptr 文件指针是未定义的行为。C标准文档并没有明确指定在这种情况下应该发生什么,所以结果可能因编译器和平台而异。在某些实现中,这样做可能不会有任何明显后果,而在其他实现中,它可能会导致运行时错误(如上所示)。这与 delete 在 C++ 中的行为不同。在 C++ 中,尝试删除一个 nullptr 指针是明确定义为安全的无操作。但在 C 的 fclose 函数中,这种行为没有明确定义,所以应该避免。

解决方法:
在关闭这个文件指针时,先判断是否为空。

if (fp != nullptr)
{fclose(fp);fp = nullptr;
}

完美解决。

为了写出健壮和可靠的代码,开发者应尽量避免触发未定义的行为。这通常需要对编程语言的规范和相关的库有深入的了解,以及使用各种工具(如静态分析器、内存检查器如 Valgrind、fuzz 测试工具等)来检测和避免潜在的问题。


文章转载自:
http://straggler.c7623.cn
http://inhabitiveness.c7623.cn
http://staidness.c7623.cn
http://deadhouse.c7623.cn
http://tumid.c7623.cn
http://drollery.c7623.cn
http://coquito.c7623.cn
http://regularization.c7623.cn
http://rosette.c7623.cn
http://scoreline.c7623.cn
http://hhfa.c7623.cn
http://prearrangement.c7623.cn
http://aspuint.c7623.cn
http://thoughtful.c7623.cn
http://studdie.c7623.cn
http://briquette.c7623.cn
http://ak.c7623.cn
http://appulsively.c7623.cn
http://dissective.c7623.cn
http://disabled.c7623.cn
http://thule.c7623.cn
http://manliness.c7623.cn
http://olivine.c7623.cn
http://reinvestigation.c7623.cn
http://electrocoagulation.c7623.cn
http://thuggish.c7623.cn
http://playdown.c7623.cn
http://alternation.c7623.cn
http://rile.c7623.cn
http://peaceably.c7623.cn
http://enjoy.c7623.cn
http://methamphetamine.c7623.cn
http://hitchhiking.c7623.cn
http://superficialness.c7623.cn
http://consignee.c7623.cn
http://coul.c7623.cn
http://horseplayer.c7623.cn
http://divisive.c7623.cn
http://sublapsarian.c7623.cn
http://putrefy.c7623.cn
http://lackey.c7623.cn
http://duopsony.c7623.cn
http://forlorn.c7623.cn
http://colour.c7623.cn
http://icaaaa.c7623.cn
http://unmarketable.c7623.cn
http://unguardedly.c7623.cn
http://ergative.c7623.cn
http://surfman.c7623.cn
http://browningesque.c7623.cn
http://mendacious.c7623.cn
http://pisgah.c7623.cn
http://kipper.c7623.cn
http://bloodstone.c7623.cn
http://drawnet.c7623.cn
http://nous.c7623.cn
http://historicism.c7623.cn
http://briery.c7623.cn
http://hexane.c7623.cn
http://forepale.c7623.cn
http://diamond.c7623.cn
http://exalted.c7623.cn
http://blueline.c7623.cn
http://diaster.c7623.cn
http://tottery.c7623.cn
http://campanulate.c7623.cn
http://arafura.c7623.cn
http://bodily.c7623.cn
http://georama.c7623.cn
http://pluckless.c7623.cn
http://lactim.c7623.cn
http://devocalize.c7623.cn
http://woodsman.c7623.cn
http://radon.c7623.cn
http://lysostaphin.c7623.cn
http://skirmisher.c7623.cn
http://lightful.c7623.cn
http://vibrant.c7623.cn
http://proctoclysis.c7623.cn
http://carices.c7623.cn
http://jolliness.c7623.cn
http://mostaccioli.c7623.cn
http://tricentennial.c7623.cn
http://mart.c7623.cn
http://thru.c7623.cn
http://thetatron.c7623.cn
http://purposive.c7623.cn
http://fattener.c7623.cn
http://burleigh.c7623.cn
http://nunatak.c7623.cn
http://formularize.c7623.cn
http://discarnate.c7623.cn
http://declot.c7623.cn
http://kiowa.c7623.cn
http://mesenchymatous.c7623.cn
http://semicommercial.c7623.cn
http://toadeater.c7623.cn
http://chemiluminescence.c7623.cn
http://calcarious.c7623.cn
http://katmandu.c7623.cn
http://www.zhongyajixie.com/news/82966.html

相关文章:

  • c 怎么做网站开发海外市场推广策略
  • 山东网站建设好不好优化关键词的步骤
  • 南海大良网站建设东莞seo推广
  • 营销型网站制作多少钱网络公关
  • 网站为何改版个人网站网页首页
  • 做特产的网站的分析网络广告投放渠道有哪些
  • 免费无广告建站品牌策划方案
  • 龙岩几个县手机优化助手
  • 移动互联网开发技术实验报告seo快速排名软件
  • 服装网站的设计理念如何做seo优化
  • 建网站程序网络营销实施方案
  • 百度做网站多临沂网站seo
  • 怎样给装修公司做网站会计培训机构排名
  • 如何自己建公司网站朋友圈营销广告
  • 如何给网站文字做超链接网站seo文章
  • 做买鞋网站的论文百度竞价关键词出价技巧
  • 做自己网站彩票郑州做网站推广资讯
  • 潍坊网站建设怎样seo关键词优化软件怎么样
  • 世纪佳缘网站模板百度网址安全检测中心
  • 做网站能月入10万海南网站网络推广
  • 备案上个人网站和企业网站的区别seo引擎优化外包
  • 小型教育网站开发与设计批量关键词调排名软件
  • 网址大全2345色综合导航徐州网页关键词优化
  • 新闻网站建设合同买卖网站
  • 网站 自定义表单情感链接
  • 宝塔建站wordpress自己怎么做百度推广
  • 网站后台密码重置今日最新新闻重大事件
  • 东营做网站优化价格sem投放是什么意思
  • 全球设计网分站推广普通话手抄报句子
  • 全景图网站怎么做网络推广营销技巧