访问结构C++中存在的位集

Accessing Bitset present inside a struct C++

本文关键字:存在 结构 C++ 访问      更新时间:2023-10-16

>我有一个看起来像这样的结构:

struct bf_t {
bitset<250000> h0;
};

我想知道如何为这个结构分配内存以及如何在我的main()中访问h0。

我尝试这样做:

bf_t *b;
b->h0.set(1); 
error: base operand of ‘->’ is not a pointer
bf_t *b ;
b.h0.set(1); 
error: request for member ‘h0’ in ‘b’, which is of non-class type ‘long long int’

错误消息和代码不匹配。但是,这要容易得多 - 您根本不需要指针:

bf_t b;
b.h0.set(1);

当你声明这样的指针时bf_t *b;你必须在使用它们之前分配给它们。您可能希望在堆上创建一个新bf_t,如下所示:b = new bf_t(); .然后,您可以使用->访问其成员。