debug模式运行正常而release模式频繁报错【全部分都拿出来了】

debug模式运行正常而release模式频繁出错【全部分都拿出来了】
用的是VC++2013 Update1,以前都很正常的。这几天不知道怎么了,在debug模式运行得好好的程序,在release模式频繁出现读写系统保留地址(比如读0x0000000C)的错误,而且错误感觉都和在全局范围下创建的string有关,见下图:

debug模式运行正常而release模式频繁报错【全部分都拿出来了】

debug模式运行正常而release模式频繁报错【全部分都拿出来了】

g_gsPermit是在全局的匿名空间里创建的。在release模式下调试,创建时数据正常,4个元素都创建成功了。
但在同一cpp文件内的某个函数里访问它时,却只有第4个元素成功创建,其他元素里的数据是未初始化的,比如指向地址0x0000000C。等到程序访问这些string时,就会出现读写系统保留地址的错误。

我怀疑是project配置混乱了,就重新建立了一个project,结果确实减少了一些问题,有些全局字串在访问时都是正常的,但还是有一些不正常。现在我难道要重装VS2013?想想我就晕了……

PS:现在只有45分了,各位包涵一下!
------解决方案--------------------
全局的东西, 初始化时机不可控.
看你的情况, 很可能是你在全局初始化中调用了函数, 而这时可能变量还未初始化完成.


另外, 还有一种可能性, 就是你其它的变量未初始化或者是越界, 导致程序全局数据区被破坏.

如果不是第一次访问那个数组就出错, 那基本就可以判断是访问越界导致数据区被破坏了.

当然, 如果你用到其它dll, 或者lib. 也可能由于这些库的版本不统一, 让程序跑飞掉了.