初始化结构体的2d数组

initializing 2d array of a struct

本文关键字:数组 2d 结构体 初始化      更新时间:2023-10-16

结构体成员变量的初始化通常在其构造函数内部进行

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

,但我如何将2d数组初始化为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用给定的值(在本例中为零)将内存块填充到给定的字节大小

如何将2d数组初始化为0或null值?

下面是对普通结构的初始化为0:

struct SomeStruct{};
SomeStruct someStruct;
::memset ( &someStruct, 0, sizeof(SomeStruct) );

对于更高级的初始化类型,您可以查看c++ 11初始化器列表和Boost。指定