将数组的成员设置为零

set member of array to zero

本文关键字:设置 成员 数组      更新时间:2023-10-16

早上,我希望有人在这里假设我具有以下结构,甚至更好

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成员的所有数组中to to to to 0?

基本上,我的问题与这个问题有点相似

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

然后,您可以通过这种方式填充零:b.fill(0);。如果您需要将存储的地址传递给C风格功能,则可以使用b.data()进行操作。当然,您仍然可以使用b[i]访问其内容,但是如果您想要更多安全性,请使用b.at(i)

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

您可以通过将每个数组元素的b成员设置为零,将每个数组元素的b成员设置为零。你快到了,但是:

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

&nbsp;

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