假设我定义了一些结构DATA
。然后我尝试以下代码:
struct DATA data1, data2;
data2 = (DATA)(*(DATA))&data1);
为什么我在“类型转换”时收到错误 C2440?
最佳答案
这部分是问题所在:
(DATA)&data1
这里将data1
的地址制成指针,类型为struct DATA *
。然后您尝试将其转换为非指针 struct DATA 类型,这可能是错误所在。 (提示:请在以后发布完整且未经编辑的错误消息。)
实际上,您根本不需要进行任何转换、指针地址处理或取消引用。只需将一个结构分配给另一个结构,编译器就会创建代码来进行正确的复制:
data2 = data1;
关于c - C 中的 struct 'type cast' 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13887659/