结构中的数组元件不能正确复制

C2H加速器无法正确复制作为结构元件的数组元件。

在,结构的ab元件正确复制,但buf元件没有。在此赋值之后, struct_a等于{9, 8, {3, 3, 3, 3}} struct_a {9, 8, {3, 3, 3, 3}} struct_a {9, 8, {3, 3, 3, 3}}

结构的数组元件
typedef struct my_struct { int a; int b; int buf[BUF_SIZE]; }MY_STRUCT; MY_STRUCT struct_a = {1, 2, {3, 3, 3, 3}}; MY_STRUCT struct_b = {9, 8, {7, 7, 7, 7}}; struct_a = struct_b;

解决/修复方法

显式复制数组元件,如图所示。

显式复制数组元件
{ int i=0; do { struct_a.buf[i] = struct_b.buf[i]; i++; } while (i<LENGTH_OF_BUF_ELEMENT) }
编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-08-04 18:48:50 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它