c++ - 初始化结构的二维数组

标签 c++ multidimensional-array constructor struct

通常struct的成员变量的初始化发生在它的构造函数中

struct line
{
  line()
  {
     length=0;
     name[0] = '\0';
  }
  int length;
  char name[10];
};

但我如何将二维数组初始化为 0 或空值?

struct myValues
{
  myValues()
  {
    my2dDimension[0][0] = { 0 }; //shows error:expected an expression
  }
  int my2dDimension[20][2];
}

如果我不初始化它们,它们将包含我不想要的垃圾值。

最佳答案

我会用memset

struct myValues
{
  myValues()
  {
    memset(my2dDimension, 0, sizeof my2dDimension);
  }
  int my2dDimension[20][2];
}

memset 用给定值(在本例中为零)填充内存块到给定大小(以字节为单位)。

关于c++ - 初始化结构的二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15479983/

相关文章:

c++ - istringstream 不在变量中存储任何内容

c++ - 指向二维数组的指针(为什么有效)

php - mysql中的多维表

c++ - 显式默认的默认构造函数和聚合

java - 如何根据构造函数中设置的 ID 返回某个对象?

c++ - 模板类模板方法特化

c++ - 为什么在 C++ 中有这么多不同的方法来使用 new 运算符

c++ - 递归代码的运行时错误

c - 通过在c中按字母顺序排序二维字符串数组

Java Lombok : Omitting one field in @AllArgsConstructor?