我得到的错误“超额元素在标量初始化”当我试图使初始化数据,所以我可以改变数据时,它需要我改变,因为之前我的数据只是定义。但是当我初始化的时候,错误就出现了。我真的不明白这个错误。谁能解释一下,并给予我一个例子,如何使它工作?
int box[15][2] = {{0}};
if (hand == "right"){
box[15][2] = {{45,85}, {45, 75}, {45, 65}, {65, 85}, {65, 75}, {65, 65}, {25, 85}, {25, 75},
{25, 65}, {5, 85}, {5, 75}, {5, 65}, {85, 85}, {85, 75}, {85, 65}};
}
1条答案
按热度按时间ijxebb2r1#
1.只能在声明数组时使用初始化器列表来设置数组。不能将这样的列表赋给已声明的数组。
box[15][2]
不是对box
的有效引用。(最后一个元素是box[14][1]
。hand == "right"
没有任何意义。您正在比较一个char
指针和一个指向常量字符串“right”的指针。即使hand
被设置为常量字符串,也不能保证在比较中使用相同的指针。看起来你想比较hand
和"right"
处的字符串,但这并没有做到。要设置数组
box
,一种方法是创建另一个你想要的常量数组,然后使用memcpy()
将其复制到box
上。要比较两个字符串,请使用
strcmp()
。