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

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

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

具体来说一下这个例子。

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

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

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

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

欢迎交流与讨论。

相关推荐
今儿敲了吗42 分钟前
18| 差分数组
c++·笔记·学习·算法
浅念-1 小时前
C++ 模板初阶:从泛型编程到函数模板与类模板
c语言·开发语言·数据结构·c++·笔记·学习
Bear on Toilet1 小时前
BFS_FloodFill_46 . 腐烂的橘子问题
数据结构·c++·算法·leetcode·宽度优先
橘色的喵1 小时前
一个面向工业嵌入式的 C++17 Header-Only 基础设施库
c++·嵌入式·工业·基础库·head-only
stripe-python1 小时前
十二重铲雪法(上)
c++·算法
愚者游世2 小时前
long long各版本异同
开发语言·c++·程序人生·职场和发展
plus4s3 小时前
2月14日(76-78题)
c++·算法·图论
睡一觉就好了。4 小时前
迭代器失效问题
c++
-To be number.wan4 小时前
算法学习日记 |贪心算法
c++·学习·算法·贪心算法
梦游钓鱼4 小时前
c++中一维数组和二维数组的应用
数据结构·c++·算法