Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » pop_back() erzeugt laufzeitfehler

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
26.05.2007, 19:54 Uhr
mischa
Fragender


hallo
In meinem Programm lese ich eine text Datei zeilenweise ein. Jede Zeile tu ich in einen std::vector der mit std::string gefüllt ist. Irgend wie ist aber jedes Mal eine leere Zeile am Ende der Datei und damit ein Vectorelement mit einem leeren string und das stört das weitere Programm. Deswegen hab ich nach Einlesen der Datei den volgenden Code eingefügt

C++:
index=init_vec.size();
while(init_str[index]=="")
{
    init_vec.pop_back();
             --index;
}


Aber sobald das Programm zum init_vec.pop_back() kommt, stürtzt s ab.
Woran liegt das?
--
Latein Unterricht ist die spätere Rache der Römer an den Germanen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.05.2007, 21:09 Uhr
Suba Esel



Mmh, ich glaub, das liegt daran:
Du fragst ja ab, ob init_str[index] == "" ist - init_str ist aber nicht der Vector, sondern irgendein String, sodass du höchstwahrscheinlich irgendwo im Speicher lesen willst. Der Fehler liegt also nicht beim pop_back.
--
Simon

Dieser Post wurde am 26.05.2007 um 21:09 Uhr von Suba Esel editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.05.2007, 21:15 Uhr
mischa
Fragender


Oh, ic hab mich hier nur vertippt. Ich habs nochmal nachgeprüfft, im Code steht überall init_vec.
sorry
--
Latein Unterricht ist die spätere Rache der Römer an den Germanen.

Dieser Post wurde am 26.05.2007 um 21:16 Uhr von mischa editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
26.05.2007, 22:54 Uhr
0xdeadbeef
Gott
(Operator)


init_vec[init_vec.size()] Ist außerhalb des gültigen Speicherbereichs. Der Index läuft von 0 bis init_vec.size() - 1.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
27.05.2007, 15:30 Uhr
mischa
Fragender


natürlich
danke
--
Latein Unterricht ist die spätere Rache der Römer an den Germanen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: