C/C++错误集锦(VS2015):错误 C2131 表达式的计算结果不是常数

原文链接:http://www.juzicode.com/archives/4137

错误提示:

定义错误 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”,欢迎后台留言撩我,我会尽我所能为你解惑

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注