我有一个包含长数组的结构。我知道可能在定义时初始化数组:
uint8_t array[] = {0x10, 0x11, 0xa2, 0xa5};
我的问题是:是否可以在一次操作中声明后设置数组的所有元素?实际上,这是一个结构的变量。
struct example
{
uint8_t long_array[256];
};
创建实例后,我想在一次操作中将long_array
的所有元素设置为不同的值。如果不可能,设置所有元素的最简单方法是什么?
我想要做一个伪代码:
struct example ex;
ex.long_array[] = {0x01, 0x07, 0x9a, 0xd1, <...>};
感谢您的帮助!
答案 0 :(得分:3)
struct Mystruct {
int a[5];
};
int main() {
struct Mystruct foo = {
{ 1, 2, 3, 4 }
};
return 0;
}
当然你可以拥有更多阵列。
[编辑]
关于memcpy
,在评论中提到,当然它是一个有效的解决方案,但是,你需要将值放在另一个数组中,这样你才能将这个数组复制到结构