类的数据结构
class test { private: int a[10]; int b[10]; };
在实际项目中使用上面类似数据排列时,数组a中数据老是会莫名改变,在每个对a有操作的地方打断点,就没发现过会运行改变功能,跟了好久这个问题,最后试过把a改const,这样a中数据不会串了,但是还是想知道是哪儿导致它数据改变的。
于是猜测可能是地址上引用发生改变,看看到b离a近又隐约记着书上写着类中声明数据地址是连续的,就大胆猜测是对b的操作导致a数据串掉,现在就同样方法用在了b上,果然给发现了问题,有条语句执行是下面这样
b[-1] = ..
运行到这里就明白了问题所在,这是老生常谈的数组越界,这种还特隐蔽,写了这么久代码,发生在越界这个问题上不是一次两次了,相信以后还会遇到同样问题,只能说写代码的时候注意判断界限吧!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效