在一次操作中声明后填充结构中的数组的最简单方法

时间:2014-05-06 21:54:45

标签: c arrays

我有一个包含长数组的结构。我知道可能在定义时初始化数组:

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, <...>};

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

struct Mystruct {
  int a[5];
};

int main() {

  struct Mystruct foo = {
        { 1, 2, 3, 4 }
  };
  return 0;
}

当然你可以拥有更多阵列。

[编辑]

关于memcpy,在评论中提到,当然它是一个有效的解决方案,但是,你需要将值放在另一个数组中,这样你才能将这个数组复制到结构