我有一个看起来像这样的结构:
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’
答案 0 :(得分:0)
当您声明像bf_t *b;
这样的指针时,您必须在使用它们之前分配它们。您可能希望在堆上创建一个新的bf_t,如下所示:b = new bf_t();
。然后,您可以使用->
访问其成员。
答案 1 :(得分:0)
错误消息和代码不匹配。但是,它更容易 - 你根本不需要指针:
bf_t b;
b.h0.set(1);