我正在构建一个结构,其中一个成员是一个地图。
第一个问题是允许的吗?编译器没有抱怨。使用stl map作为struct的成员
struct A {
map<int, float> B;
}
后来我声明了这样的数据类型的数组。
A *C = (A *)INTERNAL_CALLOC(..., sizeof(A));
这里功能INTERNAL_CALLOC
是MALLOC的功能包装。
稍后在代码中,当我尝试第一次插入一个项目到数组的第一个元素的映射时,我得到了一个核心转储。
C[0].B[0] = 0.001;
任何想法为什么是这种情况?
谢谢!
代码部分没有出来的权利。结构A之后的行是“map B”; –
elgnoh
你不应该使用'malloc'来分配C++对象(你的结构是)。你应该使用'new'。 –