将数组的成员设置为零

时间:2016-12-05 22:27:44

标签: c++ bit

上午, 我希望有人在这里 假设我有以下结构或甚至更好的结构数组

struct foo {
  int a;
  char b[10];
  char c;
};

struct foo* bar;
bar = (struct foo*) malloc(sizeof(struct foo)*10);
memset(bar, -1, sizeof(struct foo)*10);

而不是

for (counter = 0; counter < 10; ++counter)
      memset(bar[counter],0,sizeof(char)*10);

如何在所有数组中的所有char / b成员数组中将b成员设置为0?

基本上我的问题有点类似于this一个

2 个答案:

答案 0 :(得分:1)

我想建议您使用int b[10];而不是使用std::array<char,10> b;的C风格数组。

然后你可以这样用零填充它:b.fill(0);。 如果您需要将存储地址传递给C风格的函数,则可以使用b.data()执行此操作。 当然,您仍然可以使用b[i]访问其内容,但如果您想要更安全,请使用b.at(i)

http://en.cppreference.com/w/cpp/container/array

答案 1 :(得分:0)

通过将每个数组元素的if (!checkDate(day,month,year)){ 成员设置为零,可以将每个数组元素的b成员设置为零。你几乎就在那里,但是:

  1. 您只想将b成员归零。
  2. 你要归零的东西不是8个字节。
  3. b