【发布时间】:2011-05-26 09:32:15
【问题描述】:
为什么这段代码会抛出分段错误?:/
listeners = new vector<Listener*> ();
... /* other code */
if (listeners != NULL) {
int i = listeners->size();
}
【问题讨论】:
-
嗯,三个点的内容至关重要。您的代码示例不会以任何方式重现问题,那么我们怎么可能确定问题所在?
-
@Mart:您必须粘贴代码。我猜这个向量在某个时候被删除了,因此你正在取消引用一个无效的指针。
-
我觉得这 3 个点在这里很重要。
-
指针可以为非NULL,但仍然无效。
-
为了补充这一点,我会写一些类似 listeners = shared_ptr
>(new vector ()) 的东西,而不是:p.
标签: c++ vector size segmentation-fault