分配数组元素值无法按预期工作

时间:2019-01-11 11:53:39

标签: c arrays pointers memory

我以为我终于在C语言中找到了某个地方,但是在这上面碰到了砖墙。我刚刚花了最后30分钟来查找可能的解决方案,其中一些涉及memcpy和strcpy等,但似乎都无法解决我的问题。可能是我没有正确使用它们的情况。

我创建了一个基本程序来说明我的问题。我希望向大家展示如何修复代码的这一部分将帮助我更好地理解我要去哪里。

false

2 个答案:

答案 0 :(得分:3)

更改此:

char *test;

对此:

unsigned char *test;

因为您希望目标数组与源数组具有相同的类型。

Live Demo

PS:char usually(如@Bodo所评论)默认为signed char,其中255表示-1。

答案 1 :(得分:2)

您已将test定义为指向char的指针。但是,您正在将unsigned char分配给char([在您的环境中,默认情况下[显然]为signed),因此255表示为{{1 }}。试试这个:

-1