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的一部分.
您无法像这样彼此分配数组.如果这些是字符串,请使用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)