2013-02-27 86 views
0

我有一个外部变量char myArr[3],我试图给它分配一些东西。例如,在我的函数中,我有myArr[3] = {1,2,3}。编译器告诉我,我有“意外的标记:=”,但只要我在本地声明了我的变量(myArr[3] = {1,2,3}),错误就会消失。我试图掩盖我的函数内部的外部变量,但没有结果。C - 无法将数据分配给全局变量

char myArr[3]; 

void my func(){ 
    myArr = {1,2,3} 
} 
+1

您要设置一个字符数组。 – Dmitry 2013-02-28 00:00:54

+2

请发布真实的代码。 (你是否缺少分号?) – wildplasser 2013-02-28 00:01:18

+0

@Dmitry它只是一个字符数组。只要我在本地执行,错误消失 – 2013-02-28 00:01:40

回答

3

当你

char myArr[3] = { 1, 2, 3} 

您正在创建的3个字符数组,并分别将它们设定为值1,2和3。

当你

myArr[3] = { 1, 2, 3 } 

您要设置myArr[3](这是由方式的三个字符数组第四性格;你要“出界”)来{ 1, 2, 3 }哪些没有意义。在C中,你不能像这样设置数组:这是一个语法错误。

如果你想你的阵列设置为值1,2和3试试这个:

myArr[0] = 1; 
myArr[1] = 2; 
myArr[2] = 3; 
+0

啊哈!我不知道我在想什么。漫长的一天人..漫长的一天! – 2013-02-28 00:09:22

+0

我不明白 - 你能证明你做了什么吗? – 2013-02-28 00:14:08

+0

声明一个局部变量,并在我的函数结束,使我的全球=我的本地。例如,如果我在我的函数中执行了char myLocalArr [3],然后myArr = myLocalArr。我仍然会得到一个错误 – 2013-02-28 00:15:02