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

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

感谢您的帮助!

最佳答案

struct Mystruct {
  int a[5];
};

int main() {

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

当然,您可以拥有更多数组。

[编辑]

关于memcpy,在评论中提到,当然这是一个可行的解决方案,但是,您需要将值放在另一个数组中,以便您实际上将此数组复制到结构内部的一个。

关于c - 在一次操作中声明后将数组填充到结构中的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23505197/

相关文章:

c - 用于迭代多个数组的高效设计结构

java - 如何将 Java 空参数传递给使用 JNA 编译为 C 代码的 native 方法?

c - 修改此代码以将 mySTR 转换为 BSTR

c++ - 嵌入式 Linux 中链接 'libstdc++' 库已损坏

c++ - 具有动态数组分配的 OpenMP 嵌套循环

javascript - Javascript 中的链接方法错误

ios - 根据属性删除数组中的特定对象?

c - 在另一个宏中计算 C 宏 __LINE__

c - 如何对从 C 函数返回的二维数组执行计算操作?

arrays - for 循环中的协议(protocol)一致性检查?