c - C 中的 struct 'type cast' 错误?

标签 c visual-c++

假设我定义了一些结构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/

相关文章:

c++ - 无法绘制正方形 DirectX 12 c++

使用相同的输入文件多次调用 yyparse()

c++ - 使用与 MinGW 交叉编译的 libx264 时发生奇怪且不可预测的崩溃

visual-c++ - 如何防止此 CMFCPropertySheet 的高度调整得太小?

C - 为什么我的缓冲区打印不正确?

c++ - CHOOSECOLOR 未声明的标识符

c++ - ShellExecute 不打开默认 Web 浏览器

c++ - C/C++ time.h,错误的时间打印出来,时间的比较

c - C 中的 If/Else 语句不起作用

c - 如何提供一系列交错线程来表明代码中断并且没有提供完美的同步?