将曾经的一个VC++开发的项目迁移到VS2017以后,出现一个问题,就是使用strcpy_s复制字符串完成之后,在结束符0x00后面的数据都会被0xFE填充。
之前的VS2015版本好像没有遇到这种问题,说明应该是VS2017开始才变动的,解决方法也很简单:在项目里包含 crtdbg.h 头文件,然后调用_CrtSetDebugFillThreshold(0); 即可。
#include <crtdbg.h> int main() { //...... _CrtSetDebugFillThreshold(0); //...... }
参考链接: