Segmention Fault
-
hi,
ich schreibe gerade n kleines zins und sowas durchschnittsberechnungsprogramm.
habe jetzt den slot fuer durchschnitszinssatzberechnung geschrieben, nur bei benutzung des slots, schliesst sich das programm mit einem netten segmention fault.hier mal der code:
code:
#include <qapplication.h> #include <qtable.h> #include <qpopupmenu.h> #include <qmenudata.h> #include <qmenubar.h> #include <qmessagebox.h> #include <qbuttongroup.h> #include <qcheckbox.h> #include <qradiobutton.h> #include <qpushbutton.h> #include <qlistbox.h> #include <qcombobox.h> #include <qstring.h> #include <qlabel.h> #include <qdial.h> #include <qtooltip.h> #include <qmainwindow.h> #include <qpixmap.h> #include <qtoolbar.h> #include <qtoolbutton.h> #include <qprogressbar.h> #include <qslider.h> #include <qstatusbar.h> #include <qheader.h> #include <vector.h> class mainwidget : public QMainWindow { Q_OBJECT public: mainwidget(QWidget* parent=0,const char* name=0) : QMainWindow(parent,name) { //....begin of constructor QMenuBar *mainbar = new QMenuBar(this); QPopupMenu *filemenu = new QPopupMenu(this); filemenu->insertItem("&Open"); filemenu->insertItem("&Save"); filemenu->insertSeparator(); filemenu->insertItem("&Quit",qApp,SLOT(quit())); QPopupMenu *editmenu = new QPopupMenu(this); mainbar->insertItem("&File",filemenu); mainbar->insertItem("&Edit",editmenu); QPixmap popen = QPixmap("fileopen.xpm"); QPixmap pnew = QPixmap("document.xpm"); QPixmap rechn = QPixmap("berechnen.xpm"); QToolBar *maintoolbar = new QToolBar("Tool-Menu",this,Qt::DockTop); QToolButton *newbutton = new QToolButton(pnew,"New File","ToolButton",qApp,SLOT(quit()),maintoolbar); QToolButton *openbutton = new QToolButton(popen,"Open File","ToolButton",qApp,SLOT(quit()),maintoolbar); QToolButton *berechnen = new QToolButton(rechn,"Berechnen","ToolButton",this,SLOT(berechneds()),maintoolbar); berechnen->setUsesBigPixmap(true); QStatusBar *statbar = new QStatusBar(this); statbar->message("Wertpapierverwaltung"); table = new QTable(30,5,this); this->setCentralWidget(table); QHeader *theader = table->horizontalHeader(); theader->setLabel(0,QObject::tr("WertpapierName")); theader->setLabel(1,QObject::tr("Einstandswert")); theader->setLabel(2,QObject::tr("Einstandskurs")); theader->setLabel(3,QObject::tr("Ablaufzeit")); theader->setLabel(4,QObject::tr("Zinssatz")); for(int i=0; i<5;i++) { table->adjustColumn(i); } //...end of constructor } public slots: void berechneds() { int p=0; vector<double> zinssaetze; for(int i=0; (table->text(i,4))!=0; i++) { QString temp = table->text(i,4); double tempd = temp.toDouble(); zinssaetze.push_back(tempd); p=i; } double dschnitt = 0; for(vector<double>::iterator iter=0; iter!=zinssaetze.end(); iter++) { dschnitt += *iter; } dschnitt/=zinssaetze.size(); dschnitts.setNum(dschnitt); table->setText(++p,4,dschnitts); } private: QToolBar *maintoolbar; QString dschnitts; QTable *table; }; int main(int argc,char* argv[]) { QApplication app(argc,argv); mainwidget *main = new mainwidget(); main->setGeometry(0,0,1000,600); main->show(); QObject::connect(qApp,SIGNAL(lastWindowClosed()),q App,SLOT(quit())); return app.exec(); } #include "moc.zinsberechnung.cpp"
waere dankbar fuer hilfe.
ciao lane
[edit] Bitte Code-Tags das nächste mal benutzen! [/edit]
[ Dieser Beitrag wurde am 09.11.2002 um 15:53 Uhr von kingruedi editiert. ]
-
benutz am besten einfach den gdb, damit findest du die Fehlerstelle ganz schnell.