原文链接:http://www.juzicode.com/cpp-error-vs2015-error-c2131/
错误提示:
定义错误 C2131 表达式的计算结果不是常数
//juzicode.com;vx:桔子code
//vs2015
#include < iostream >
using namespace std;
int main(void)
{
int len;
cin >> len;
int array[len];
while (len--){
cin >> array[len];
}
for (int a : array) {
cout << a << " ";
}
return 0;
}
错误原因:
1、编译期间要根据给定长度为数组分配内存空间,如果数组长度是变量就无法判断该使用多大的空间
解决方法:
1、使用动态分配内存的方式:
//juzicode.com;vx:桔子code
//vs2015
#include < iostream >
using namespace std;
int main(void)
{
int len;
cin >> len;
int *array = new int[len];//动态分配内存
int i = len;
while (i--) {
cin >> array[i];
}
for (int i = 0; i < len;i++) {
cout << array[i] << " ";
}
return 0;
}
如果本文还没有完全解决你的疑惑,你也可以在微信公众号“桔子code”后台给我留言,欢迎一起探讨交流。