访问struct C ++中存在的Bitset

时间:2012-12-01 22:09:47

标签: c++ struct bitset

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

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’

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

错误消息和代码不匹配。但是,它更容易 - 你根本不需要指针:

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