在结构中访问它们时,我似乎无法写入标准容器向量、映射和多映射(只有我尝试过的)。这是我正在尝试做的一个例子:
struct B
{
void* pp;
};
struct A
{
std::vector< B* > veEvents;
};
在某处的类函数中
A* d = new A;
B* f = new B;
d->veEvnts.push_back( f ); //<< this line crashes
尝试以这种方式访问容器会使 STD 崩溃。它在引用此指针的行上的 STD 代码中崩溃。我尝试了几种解决方法,包括对向量语句进行类型定义,但没有奏效。似乎有希望作为一种解决方法的一个是将函数放入结构中并调用该函数......
struct B
{
void* pp;
};
struct A
{
void K( B* f )
{
static std::vector< B* > veEvents;
veEvnts.push_back( f ); //<< this line crashes
}
};
在某些类函数中
A* a = new A;
B* b = new B;
a->K(b); //This seems to work.
有什么办法可以解决最初的问题,即访问结构内声明的容器会导致访问问题?