指针数组赋值越界引发的bug
指针数组赋值越界引发的bug
问题描述
- 项目中写了这么一段代码,整段代码在while循环中循环读取数据
if (!GetAveData(strFilePath, m_ppHVFreq[i], m_ppHV[i], m_pnHVSize[i])) //读取hv数据 |
- 在代码的第21行
m_ppdSpecFreqLog[i] = new double[nSize]; // 100 hv 300 spec
,这段代码中想着用nnSize(300)开辟,结果开辟成了nSize(100)大小,导致在后续的处理中,对数组进行了越界的赋值
m_ppdSpecFreqLog[i] = new double[nSize]; // 100 hv 300 spec |
开辟了一百的大小却赋了300的值,这样的直接后果就是后面用new开辟指针数组 ==疯狂中断== 报访问异常,难以定位,难以排查
教训
- 命名不规范,调试两行泪
- 认真认真认真
- new出错,优先查找这个bug
指针数组赋值越界引发的bug
https://qianxunslimg.github.io/2022/03/16/zhi-zhen-shu-zu-fu-zhi-yue-jie-yin-fa-de-bug/