我是靠谱客的博主 搞怪金针菇,最近开发中收集的这篇文章主要介绍QT编译出错——ASSERT failure in QList::at: "index out of range", file E:\\...\include/QtCore/qlist.h,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

出错:ASSERT failure in QList<T>::at: "index out of range", file E:qtQt5.105.10.0mingw53_32include/QtCore/qlist.h, line 541

原因:QList的索引越界,超出了范围。简而言之,比如:list.at(2)不存在,只存在list.at(0)和list.at(1),而你QT程序中索引到了list.at(2),此时编译就会出现改错误。然而修改为list.at(0)或是list.at(1)时,编译通过。。。既是如此

出现在:《Qt 5 开发及实例》(第三版)第10章 Qt 5 网络与通信中;具体代码如下:

获取主机信息函数getHostInformation() 

void networkinformation::getHostInformation()
{
    QString localHostName = QHostInfo::localHostName();         //获取本机主机名
    LineEditLocalHostName->setText(localHostName);

    QHostInfo hostInfo = QHostInfo::fromName(localHostName);    //根据主机名获取相关主机信息,包括IP地址等

    //获取主机的IP地址列表
    QList<QHostAddress> listAddress = hostInfo.addresses();
    if(!listAddress.isEmpty())  //获取主机IP地址列表可能为空。在不为空的情况下使用第一个IP地址。
    {
        LineEditAddress->setText(listAddress.at(2).toString());
    }
}

其中listAddress.at(2)是不存在的,导致QList索引失败,改为

        LineEditAddress->setText(listAddress.at(1).toString());

即可。

最后

以上就是搞怪金针菇为你收集整理的QT编译出错——ASSERT failure in QList::at: "index out of range", file E:\\...\include/QtCore/qlist.h的全部内容,希望文章能够帮你解决QT编译出错——ASSERT failure in QList::at: "index out of range", file E:\\...\include/QtCore/qlist.h所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部