微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

向量::大小和分段错误

如何解决向量::大小和分段错误

| 为什么此代码会引发分段错误?:/
listeners = new vector<Listener*> ();

... /* other code */

if (listeners != NULL) {
int i = listeners->size();
}
    

解决方法

仅仅因为指针不是
NULL
并不意味着它指向有效的
vector<Listener*>
对象。 通过valgrind运行程序以检测内存损坏问题,并确保也通过调试器运行代码。 如果仍然有问题,请发布一个重现该问题的测试(而不是一些没有问题的代码段)。     ,与使用valgrind相比,更简单的方法是在分配之后立即移动
listeners->size()
调用,并查看它是否在此之前仍存在段错误。如果否,则将其降低几行代码,然后重试,然后重复。如果出现段错误,您只需找到导致它的行。也许您一直在使用指针做一些事情,这是一种查找这段代码的方法。 查看二分法。 可能并不总是有效,而是一种启发式方法。     ,
vector<Listener*> listeners;
可能会为您节省一些问题或使代码中断的原因更明显     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。