将局部变量指针传递给某个c++类,离开类时数据发生变化

最近遇到一个c++的问题,将一个局部变量的值传递给某个类,类中没有对该数据进行任何显式修改,结果该变量的值发生变化并且不可访问。

我开始很奇怪为何会发生这样的事情,后来经过调试,发现原来是该类发生了异常,而异常会导致内存的值不再可靠,也就是本来该维持不变的值也被异常修改了,谨此纪念,以免下次遇到这类问题时又没有头绪。

具体来说一下这个例子。

如上图所示,该函数为类的成员函数用于获取输出指针,这个结构体已经是初始化过了的,并且在类的内部并没有对其进行修改(为了测试修改的代码已经临时屏蔽)。

如果类里面的函数没有异常,这个结构体指针指向的内容不会发生任何变化,但是如果类异常了,但是没有中断,此时这个结构体的指针指向的内容异常,并且这个结构体无法正常访问。

具体表现就是无法使用m_pOutputPara->bComplete访问这个变量,而直接异常了。

简单来说,当你发现某个变量不应当被改变而被改变了并且无法正常访问,那么你需要考虑调用它的某个类里面发生了异常这种可能性

欢迎交流与讨论。

相关推荐
带鱼吃猫几秒前
C++STL:从 0 到 1 手写 C++ string以及高频易错点复盘
开发语言·c++
u0109272712 分钟前
代码覆盖率工具实战
开发语言·c++·算法
天赐学c语言13 分钟前
2.1 - 反转字符串中的单词 && 每个进程的内存里包含什么
c++·算法·leecode
欧阳x天20 分钟前
STL讲解(七)——list容器的模拟实现
c++·windows·list
枫叶丹422 分钟前
【Qt开发】Qt系统(十一)-> Qt 音频
c语言·开发语言·c++·qt·音视频
散峰而望28 分钟前
【基础算法】穷举的艺术:在可能性森林中寻找答案
开发语言·数据结构·c++·算法·随机森林·github·动态规划
那年我七岁30 分钟前
android ndk c++ 绘制图片方式
android·c++·python
散峰而望31 分钟前
【基础算法】算法的“预谋”:前缀和如何改变游戏规则
开发语言·数据结构·c++·算法·github·动态规划·推荐算法
仰泳的熊猫33 分钟前
题目1432:蓝桥杯2013年第四届真题-剪格子
数据结构·c++·算法·蓝桥杯·深度优先·图论
闻缺陷则喜何志丹44 分钟前
【数论 快速指数幂 龟速乘】P8652 [蓝桥杯 2017 国 C] 小数第 n 位|普及+
c++·蓝桥杯·数论·快速指数幂·龟速乘