通常,struct成员变量的初始化将在其构造函数中进行

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


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

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将给定值(在这种情况下为零)填充到给定大小(以字节为单位)的内存块。

09-04 16:02