用的是vs+qt把这个slotclick程序注释掉后运行就没有问题, 加上之后就一直出现异常
#include "range.h"
#include "edit.h"
#include <QTextCodec>
#define Mtr(s) (unCodec->toUnicode(s))
Edit::Edit(QWidget* parent) : QDialog(parent)
{
this->setFixedSize(1000, 800); //设置窗体固定大小
connect(ui.toolButton_2, SIGNAL(clicked()), this, SLOT(slotclicked1112()));
ui.setupUi(this);
}
void Edit::slotclicked1112()//删除
{
int u = 0;
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
QString text = QTextCodec::codecForName("GBK")->fromUnicode(ui.lineEdit->text());
QString qid = ui.lineEdit_2->text();
string id = qid.toStdString();
for (int k = 0; k < number; k++) {
if (QString::compare(stu[k].name, text) == 0 && stu[k].num == id)
{
u++;
for (; k + 1 < number; k++) {
stu[k] = stu[k + 1];
stug[k] = stug[k + 1];
stue[k] = stue[k + 1];
stuj[k] = stuj[k + 1];
stus[k] = stus[k + 1];
}
}
if (u == 0) {
QMessageBox::information(0, QString::fromLocal8Bit("弹窗"), QString::fromLocal8Bit("不存在该学生"));
}
}
}
在那个slotclicked1112就一直报错有未经处理的异常: 0xC0000005: 读取位置时发生访问冲突。
在网上搜了搜可能是指针相关问题?也没找到具体错误在哪, student是定义的类,stu,stug之类的都是student数组