gpt4 book ai didi

c++ - 通过结构指针将结构的成员初始化为零

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:10:30 25 4
gpt4 key购买 nike

typedef struct {  
double firstArray[3];
double secondArray[4][4];
bool thirdArray[2];
} myStruct;

我知道我们可以使用 int myArray[10] = { 0 };

在一行中将数​​组的所有值初始化为零

我有一个函数可以将 myStruct 中数组的所有元素初始化为零和 false(对于 bool)。

void initializeElementsOfStruct(myStruct* str)
{
str->firstArray[0] = 0.0;
str->firstArray[1] = 0.0;
str->firstArray[2] = 0.0;
...
}

除了上面的方法或使用 for 循环,我该如何在一行中完成它?

编辑:该结构也可能包含非原始数据类型。

最佳答案

由于您的结构仅由原始类型组成,因此您可以将其整个内存表示设置为零,并且应该会获得所需的效果。 (这可能会覆盖您在成员方式方法中不会写入的填充字节,但最终可能更有效率。)

在 C 中:

#include <string.h>

memset(str, 0, sizeof *str)

在 C++ 中:

#include <algorithm>

std::fill(reinterpret_cast<char*>(str),
reinterpret_cast<Char*>(str) + sizeof *str, 0);

关于c++ - 通过结构指针将结构的成员初始化为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18895000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com