首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

发送信号中内存非法访问,该如何处理

2012-01-13 
发送信号中内存非法访问C/C++ code/////////////////////////////////////////////////////////////常量定

发送信号中内存非法访问

C/C++ code
/////////////////////////////////////////////////////////////常量定义#define STR_TOTALLINE_TYPE_USER                QString::fromUtf8("内线")#define STR_TOTALLINE_TYPE_TRUNK                QString::fromUtf8("外线")#define STR_TOTALLINE_TYPE_EMPTY                QString::fromUtf8("悬空")#define STR_TOTALLINE_TYPE_RECORD                QString::fromUtf8("录音")/////////////////////////////////////////////////////////////signal 定义signals:    void outTableItem(int nRow, int nCol, QString label);//////////////////////////////////////////////////////////////signal 使用    long lType;    QString strText;/*usTotalLine > 8*/    for (int i = 0; i < usTotalLine; i++) {        lType = CheckChTypeNew(i);        switch (lType) {        case CHTYPE_USER:            strText = STR_TOTALLINE_TYPE_USER;            break;        case CHTYPE_TRUNK:            strText = STR_TOTALLINE_TYPE_TRUNK;            break;        case CHTYPE_EMPTY:            strText = STR_TOTALLINE_TYPE_EMPTY;            break;        case CHTYPE_RECORD:            strText = STR_TOTALLINE_TYPE_RECORD;            break;        }/*我注释一种的任何一句emit 程序做一次循环就出现内存的非法访问*//*如果不注释 程序可以做3次循环*//*debug 发现是QString一起的错误*/        emit        outTableItem(i, INT_TOTALLINE_ITEM_NUM, QString::number(i));        emit        outTableItem(i, INT_TOTALLINE_ITEM_TYPE, strText);        msleep(500);    }///////////////////////////////////////////////////////////////////slot 定义public slots:    void startServer(bool checked);///////////////////////////////////////////////////////////////////connect    connect(&classVoiceSystem, SIGNAL(outTableItem(int, int, QString)), this,            SLOT(setTableItem(int, int, QString)));///////////////////////////////////////////////////////////////////slot 我屏蔽主体语句错误依然 可以排除slot中的问题void CallCenterServer::setTableItem(int nRow, int nCol, QString label) {    QTableWidgetItem *item = new QTableWidgetItem(label);    ui.tableWidget->setItem(nRow, nCol, item);}


[解决办法]
是否没有指定QTableWidget的行、列数?
[解决办法]
int i的作用域是for循环,
你在for的外面使用了i
[解决办法]
改成这样:
int i ;
for (i = 0; i < usTotalLine; i++) {

探讨

请问怎么解决
去除引用?

[解决办法]
不错,谢谢楼主,真的不错
[解决办法]
你确定你的行和列数目是正确的吗??
[解决办法]
sssssssssss
[解决办法]
不错,虽然没看懂。。
[解决办法]
不错,我收藏了.
[解决办法]
不错,学习了
[解决办法]
楼主不错呢,虽然提不出什么建议,但是顶起来,up
[解决办法]
按时接分
[解决办法]
我只是来看看
[解决办法]
signals:
void outTableItem(int nRow, int nCol, const QString& label);

------解决方案--------------------


路过。。。。。
[解决办法]
学习了
[解决办法]
收藏收藏~~~~
[解决办法]
学习学习
[解决办法]
挺好的,学习一下
[解决办法]
内存越界了
[解决办法]
神奇
。。。。。。。。。。。。。
[解决办法]
来看看!!!
[解决办法]
这个不懂,等待高手解决了
[解决办法]
hao

[解决办法]
听说评论有分
[解决办法]
学习中分享中
[解决办法]
int i的作用域是for循环,
你在for的外面使用了i 
 

[解决办法]
来看看。学习了......
[解决办法]
学习了,,,
[解决办法]
虽然看的不是很了解,学习学习!
[解决办法]
学习 学习

热点排行