分配给相同类型的变量时,C不兼容类型错误

Dan*_*bbs 1 c arrays types pointers

我有以下代码:

typedef unsigned char some_type[6];

int main() {
        some_type some_var1;
        some_type some_var2;
        some_var1 = some_var2;
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我尝试编译它时,我收到以下错误消息:

incompatible types when assigning to type 'some_type' from type 'unsigned char *'
Run Code Online (Sandbox Code Playgroud)

为什么是这样?两个变量都是完全相同的类型?我能做些什么才能让它发挥作用?我无法更改typedef,因为它是我正在使用的API的一部分.

Joh*_*ica 5

您无法像这样彼此分配数组.如果这些是字符串,请使用strcpy:

strcpy(some_var1, some_var2);
Run Code Online (Sandbox Code Playgroud)

如果没有,请使用memcpy:

memcpy(&some_var1, &some_var2, sizeof (some_type));
Run Code Online (Sandbox Code Playgroud)