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.


Anmelden zum Antworten