【发布时间】:2011-10-02 01:25:01
【问题描述】:
我有一个带有私有“指向向量”成员 pV 的 C++ 类,我在构造函数中为其分配了一个新向量...
pV = new vector<FMCounter>(n, FMCounter(arg1))>;
但是当我在类的析构函数中删除时
delete pV;
我收到一个段错误和一条消息,表明我正在尝试释放一开始没有分配的 pv。我检查了 pV->size() 是 4K 的东西,所以我确定它是由 new 分配的内存。
【问题讨论】:
-
尝试在 valgrind 的 memcheck 下运行您的程序 - 它会告诉您在第二次释放时内存第一次释放或分配的位置。
-
为什么不将向量作为普通成员?否则请参阅克里斯蒂安的回答。
标签: c++ vector segmentation-fault