嗨我試圖通過程序化編程,使鏈表中CPP在QT,每當我嘗試的東西添加到列表中我得到這個錯誤:QT寫訪問衝突
c:\users\marcin\documents\dev cpp\proc_list\proc_list.cpp:11: error: Exception at 0x13fc325cb, code: 0xc0000005: write access violation at: 0x1, flags=0x0 (first chance)
從什麼我已經讀過這個問題應該是,我嘗試訪問空指針,但試着檢查它,它看起來很好。下面是錯誤代碼:
void append_rec(QString name, int age, int number, float balance, item *first){
item *newrec;
item *temp;
newrec = new item(this);
temp = new item;
newrec->next = NULL;
newrec->name = name;
newrec->number = number;
newrec->balance = balance;
newrec->age = age;
temp = first;
while(temp->next!= NULL)
temp = temp->next;
temp->next = newrec;
}
和問題(如調試器說的newrec->next = NULL;
線彈出我剛開始學習CPP和嚴重無法找到解決
編輯。
代碼的項目結構(這個任務我不能使用類):
#ifndef PROC_LIST_H
#define PROC_LIST_H
#include <qstring.h>
struct item{
item *next;
QString name;
int age;
int number;
float balance;
};
void append_rec(QString name, int age, int number, float balance, item * first);
void display_list(item * first);
#endif // PROC_LIST_H
編輯2
主窗口文件,涵蓋我所做的所有事情與我的清單。
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "proc_list.cpp"
item *first = NULL;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_front_add_clicked()
{
append_rec(ui->name_edit->text(),
ui->age_edit->text().toInt(),
ui->accnum_edit->text().toInt(),
ui->balance_edit->text().toFloat(),
first);
}
什麼是threc類型的newrec-> next?你可以分享物品類的代碼嗎? @ tm。 –
@ t.m。是的,完全忘了它:) – Animu
我不確定在C++中是否是這種情況,但在c結構中,如果您在本身使用struct關鍵字,則應該明確地將它寫爲struct。我的意思是,寫下「struct item * next」而不是「item * next」。 –