Compiler Error C2057

用VS2010编译一开源项目时报出C2057错误。

定位在:

Compiler Error C2057_第1张图片


在最初学C的时候就晓得不能那样写,因为该数组的内存空间大小需要在编辑时确定,而n是一个运行时才知道的数值。

但为什么别人编译通过了呢?报着这样的想法google了一把。

得到的结论是:

由于C99标准支持可变长的数组。C98,C11并不支持。

vs2010的编译器部分兼容C99标准。并不支持动态数组。


给出的建议是用vector代替动态的数组。

Compiler Error C2057_第2张图片



图来源于:

http://stackoverflow.com/questions/17062524/error-c2057-expected-constant-expression

http://stackoverflow.com/questions/7303740/error-c2057-expected-constant-expression





你可能感兴趣的:(Compiler Error C2057)