我得到了错误C2440:

问题描述:

我有以下错误我得到了错误C2440:

错误C2440:初始化:不能转换从 '常量诠释' 到 '廉政 [16]'

我的代码是这样的

static int Count[MAX_STATION_NO] = 0; 

我上面的错误。有人能告诉我上述行中有什么问题吗?

+0

你可能想:'静态诠释计数[MAX_STATION_NO] = {0}'; – Mysticial 2012-04-02 09:09:56

您正在将数组视为指针,这是非法的。您不能将数组分配给某个值。

也许你想这样的:

static int Count[MAX_STATION_NO] = {0}; 
+0

谢谢Luchian先生,你解决了我的问题 – Vaibhav 2012-04-02 09:15:02

要创建阵列和阵列值设置为“0”。我想你希望做的是:

static int Count[MAX_STATION_NO] = {0} 
+0

不,他没有将数组值设置为0.他的代码只是非法的。 – 2012-04-02 09:11:30

+0

是的,我明白这一点。我的意思是,代码暗示它将数组的值设置为一个整数,导致数据类型不匹配,然后继续根据我认为他实际上希望做的事情给出解决方案。 – 2012-04-02 09:14:43

+0

你的表述仍然错误和误导。 – 2012-04-02 09:16:05

你的初始化需要在大括号:

static int Count[MAX_STATION_NO] = { 0 }; 

BTW:静态数组有自己的内容初始化为0反正所以你上面的等价于:

static int Count[MAX_STATION_NO]; 

该行声明一个大小为16的数组,然后给它指定一个数字,这在句法上是不正确的。您需要使用数组初始化:

{ 16, 2, 77, 40, 12071 ... } 

大括号{}需要初始化数组。 如:

static int Count[MAX_STATION_NO]={1,2,3}; 

也许这个链接可以帮助你:http://www.cplusplus.com/doc/tutorial/arrays/

+0

这是C++ 11 systax。很多编译器(在VS2010之前)在初始化列表之前需要'='。 – harper 2012-04-02 12:56:18

+0

哦,当然我会编辑它。感谢您指出 – 2012-04-03 04:02:39