内存访问数组下表为负的话,会访问到其他数据
因为debug版本下,在每块内存的前后都留有保护字节,里面预先写入一个固定值(0xCD),一旦这个值被改了,就报错!而在release下,这种机制当然就没有了(因为太耗性能了,只应该在debug版本启用)
所以建议在读取数据的时候对数组坐标进行限制,保险,不然程序在Debug版本可以,Release版本GG或者Debug时不时crash,这种时错时不错的程序问题最令人头疼。
断言
_DEBUG 与 NDEBUG :当定义了 _DEBUG 时,assert() 函数会被编译,而 NDEBUG 时不被编译。
所有这些断言都只在 Debug版中才被编译,而在 Release 版中被忽略。唯一的例外是 VERIFY() 。