1. 问题描述**
RTKlib程序中"Run-Time Check Failure #2 -Stack around the variable ‘sys’ was corrupted"问题解决方案。
2. 产生原因
报错在“readrnxfp()函数”结尾处,显示是变量“sys”附近堆被破环。
3. 原因排查过程
(1)“sys”变量在“readrnxfp()函数”中定义,赋值在“readrnxh()函数”中,但是程序逐步运行,可从“readrnxh()函数”正常退出;
(2)从网上查找发现,此类错误主要是数组越界所引起的,因此,“sys"变量堆被破环,不一定是该变量,也可能是周边的数组越界所引起;
(3)“readrnxh()函数”中的数组只有"tobs”,该变量为三维数组,读取obs观测数据的头信息中各系统观测类型信息,经查看文件发现,数据类型包含7种,如下图,而所定义的tobs[6][][],数组越界。
4. 解决方法
调整”tobs[6][][]“为”tobs[7][][]“。