boost::filesystem kaputt -> Absturz
-
Hallo, ja, wieder mal ein Thread von mir.
Folgendes Programm...
#include <boost/filesystem.hpp> int main() { boost::filesystem::directory_iterator iter("plugins/"), end; while(iter != end) std::cout << iter->path().string() << std::endl; return 0; }
->
ircbot(52801) malloc: *** error for object 0x100220840: pointer being freed was not allocated *** set a breakpoint in malloc_error_break to debug
Was mach ich falsch? Ich will nur über ein Verzeichnis iterieren. -.-
-
Definitiv seltsam.
-
also, ich hab ja kaum ahnung von boost, und von filesystem auch nicht wirklich.
aber dieses konstrukt was du da gezaubert hast, sieht alles andere als gut ausdu erstellst vielleicht einen iterator auf die erste datei in einem verzeichnis, aber den end iterator initalisierst du nicht. und trotzdem vergleichst du...
-
@Skym0sh0: Der Default-konstruierte Iterator repräsentiert das Ende im Verzeichnis, auch tritt der Fehler bei der Konstruktion von 'iter' auf.
-
hustbär schrieb:
Definitiv seltsam.
Von einem Bär zum anderen: soll ich mich jetzt geehrt fühlen, oder willst du mich ärgern? Oder wolltest du mir nur Arbeit abnehmen, indem du 314 für mich nervst?
(Was ich ja gar nicht primär als Ziel habe, vor allen nicht in Threads wie diesem wo er (fast) berechtigte Fragen stellt)
EDIT: Note to self: Rechtschreibung ist schwer
/EDIT
EDIT: Note to self: Tippen ist auch schwer/EDIT
----
@314159265358979:
Der einzige Fehler den ich sehen kann, ist dass du "iter" nie inkrementierst.Ansonsten Gegenfrage: wieso wirfst du nicht mal den Debugger an, und guckst wo genau diese Meldung ausgegeben wird?
Bei sämtlichen IDEs die ich kennen (was Netbeans und Eclipse mit GCC/GDB einschliesst) beschränkt sich der Aufwand auf "Play drücken und warten".
-
Ich kämpfe gerade mit meiner eigenen directory_iterator Klasse, aber im Prizip funktionierts. Danke trotzdem für die Hilfe.