1.29日志
BUG:替换全局变量出现一堆异常
全局变量 CTeamChallenge Team[9];
下面的是反汇编代码,留意下AdjustNum,AdjustNum其实没用,但必须存在!!!

下面的是代码

这两张图片的代码是一样的,只不过是显示的形式不同,那为什么会有异常出现呢?
1.先看Team长度为9;
2.数组长度是无法确定的,计算方式为sizeof(Team) / sizeof(Team[0]),内存大小/一个类型大小=长度
但全局变量经过编译之后长度的计算方式就变成全局变量Team所在的地址跟下一个全局变量AdjustNum的地址
结论:因为替换了Team,导致Team跟AdjustNum相差地址不同,内存越界!!!编程中绝对不能出现!
修复:再替换AdjustNum的地址为Team长度大小的下一个全局变量地址