0

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

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];
}

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

4

2 回答 2

3

我会使用 memset

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

memset 用给定的值(在这种情况下为零)填充一块内存到给定的字节大小。

于 2013-03-18T15:07:04.463 回答
1

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

对于普通结构,波纹管初始化为 0:

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

对于更高级的初始化类型,您可以查看C++11 初始化列表Boost.Assign

于 2013-03-18T15:07:15.950 回答