我在写一个多线程Socket程序程序起初写好后,运行使用都没有错误,然后我将其设置为unicode编译,运行后发现线程中所有的
new char[xxx]
返回都为NULL,经过多方检查,估计是ZeroMemory的问题,很多new失败都是出在ZeroMemory调用之后的,然后我查了相关资料,使用了防止编译器优化的SecureZeroMemory代替所有的ZeroMemory,运行后发现,的确是有几处new成功了,但大部分还是失败,最后我的解决方案是自己编译一个清空内存的函数,但这个问题我还是很想知道为什么?(注:该问题在debug和release中都有,debug中默认是不优化的,为何还有问题?)