1. 问题
在用VS2013中编译一个开源库是遇到以下错误:
error C4703: 使用了可能未初始化的本地指针变量“xxx”
2. 分析
VS2013创建项目,会默认勾选安全开发生命周期(SDL)检查,
其功能是更好的监管开发者的代码安全,如果勾选这一项,那么编译时将严格按照SDL的规则编译代码,
导致,会有一些以前常用的函数无法通过编译,比如在VS2010中的scanf是warning那么在VS2013中就是error了。
3. 解决方法
关闭SDL检查:
项目属性->配置属性->C/C++->SDL检查,选测是或者否。
此时选择”否”,则上面的那个错误就不会出现了。
或者将指针变量初始化为nullptr,也可以解决。
参考文章
1. https://blog.youkuaiyun.com/sinat_20265495/article/details/62056034