C2440错误,尝试将const char更改为char

时间:2011-11-01 20:44:16

标签: c character

好吧,所以它是hw的一部分,我不能用字符串来帮助解决我的问题。我有点卡住,因为我需要使用那些字符数组。关于如何解决这个问题的任何提示?

int main()
{
struct structure
{
   char name[15];
};

structure ObrLog[2]= 
{
  {"Bambi"},
  {"Cindarella"},
};
ObrLog[1].nazwa="somethingnew"; //error here
}

2 个答案:

答案 0 :(得分:2)

要将C字符串复制到缓冲区,请使用memcpy。假设您的意思是name而不是nazwa

char newval[] = "somethingnew";

// in a function
memcpy(ObrLog[1].name, newval, min(strlen(newval) + 1, sizeof(ObrLog[1].name));
ObrLog[1].name[14] = '\0';  // just to be sure the name is NUL-terminated

其中min的定义留给读者作为练习。 +1用于说明newval末尾的隐含NUL。

答案 1 :(得分:0)

您无法像这样修改字符数组。您需要使用strcpy并注意缓冲区溢出。 (假设输入错误为nazwa而不是name

 strcpy(ObrLog[1].name, "somethingnew");