用VS2010编译一开源项目时报出C2057错误。
定位在:
在最初学C的时候就晓得不能那样写,因为该数组的内存空间大小需要在编辑时确定,而n是一个运行时才知道的数值。
但为什么别人编译通过了呢?报着这样的想法google了一把。
得到的结论是:
由于C99标准支持可变长的数组。C98,C11并不支持。
vs2010的编译器部分兼容C99标准。并不支持动态数组。
给出的建议是用vector代替动态的数组。
图来源于:
http://stackoverflow.com/question

在使用VS2010编译开源项目时遇到C2057错误,问题源于尝试用运行时确定大小的数组。虽然C99标准支持可变长数组,但VS2010并不完全兼容此特性,建议使用vector替代。查阅资料后发现,C98和C11标准并不包含可变长数组,而C99的部分功能在VS2010中未实现。
最低0.47元/天 解锁文章
4万+

被折叠的 条评论
为什么被折叠?



