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

Simplest way to fill an array in a struct after declaration in one operation

本问题已经有最佳答案,请猛点这里访问。

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

1
uint8_t array[] = {0x10, 0x11, 0xa2, 0xa5};

我的问题是:是否可以在一个操作中声明后设置数组的所有元素?实际上,这是一个结构的变量。

1
2
3
4
struct example
{
    uint8_t long_array[256];
};

在创建实例之后,我想在一个操作中将long_array的所有元素设置为不同的值。如果不可能,设置所有元素的最简单方法是什么?

我要做的是一个伪代码:

1
2
struct example ex;
ex.long_array[] = {0x01, 0x07, 0x9a, 0xd1, <...>};

谢谢你的帮助!


1
2
3
4
5
6
7
8
9
10
11
struct Mystruct {
  int a[5];
};

int main() {

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

当然,你可以有更多的数组。

[编辑]

关于memcpy,也就是在注释中提到的,当然这是一个有效的解决方案,但是,您需要在另一个数组中有值,这样您就可以将这个数组实际复制到结构中的那个数组。