c++ vector-problem

Dieses Thema im Forum "C/C++" wurde erstellt von ganymed, 05.01.2007.

  1. #1 ganymed, 05.01.2007
    ganymed

    ganymed bluefish

    Dabei seit:
    14.05.2006
    Beiträge:
    52
    Zustimmungen:
    0
    ich hab einen ziemlich seltsamen fehler, den ich bei manchen programmdurchläufen erhalte. seltsam ist auch, dass ich sie manchmal bekommen und manchmal nicht, auch wenn ich sonst nix verändere.
    der fehler kommt erst nachdem ich 2 eingaben im programm gamcht hab.
    Code:
    vector<float> kf;
    damit erstelle ich einen vector.
    Code:
    kf.resize(grad);
    das soll die anzahl der elemente auf eine bestimmte zahl bringen (meistens so um die 10).
    Code:
    while(akt_grad>0){
    akt_grad=akt_grad-1;		
    cout<<"Koeffizient "<<akt_grad<<"? ";
    cin>>kofix;
    if(! cin.fail()){
    kf[akt_grad]=kofix;//gib dem aktuellen grad seine koeffizienten
    cout<<"Koeffizient des Grades"<<akt_grad<<" ist "<<kf[akt_grad]<<endl<<endl; //bestaetige mit ausgabe aus dem vector	
    }
    else{
    cout<<"Eingabe ungültig."<<endl;
    return 1;
    }
    }//ende while akt_grad>0
    
    ich will hier nur jedem grad einen koeffizienten zurodnen und den im vector speichern. (es geht um ganzrationale gleichungen).
    in diesem teil kommt es dann meiste nach der 2. eingabe zu folgender fehlermeldung:
    das kapier ich gar nicht mehr.
    beim kompilieren erhalte ich weder warnungen noch fehler.
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Hast Du das Programm mal mit '-O0 -g' kompiliert und dann mit gdb gestartet? Das sollte Dir genauere Angaben geben, wo der Fehler auftritt, inklusive Zeilenangaben.
     
  4. #3 ganymed, 05.01.2007
    Zuletzt bearbeitet: 06.01.2007
    ganymed

    ganymed bluefish

    Dabei seit:
    14.05.2006
    Beiträge:
    52
    Zustimmungen:
    0
    ok. hab ich mal gemacht. bei den ersten anläufen keine fehlermeldungen später dann schon:
    nach der fehlermeldung kommt:
    where liefert:
    das ist die hier:
    Code:
    38: cin>>kofix;
    wo liegt jetzt der fehler? (das um zeile 38 herum seht ihr in meinem vorherigen beitrag.)
    Code:
    float kofix;//koeffizient fuers einlesen von daten und schieben in den vektor
    da definiere ich kofix.
    was mach ich falsch?
    edit:
    -----------------------
    ok. hab nochmal ein bisschen rumprobiert. denke jetzt dass es was mit speicher zu tun hat. wenn ich einen größeren vector erzeuge tritt der fehler später auf.
    beispiel:
    vector mit 5 elementen->fehler nach setzten des 2. elements
    vector mit 99 elementen->fehler nach setzen des 2. elements
    vector mit 99999 elementen -> fehler nach setzenerst seehr sehr spät (bis zum 100. element kein fehler)

    edit 2:
    ------------------------------------
    nach dem ich für jedes element einmal kf.push_back(*irgendeine seltsame zahl*) ausführe kommen keine fehler mehr.
     
Thema:

c++ vector-problem