fehler in xmemory

  • Hallo!

    Ich versuche gerade einen torrent client zu schreiben... anfangs wollte ich es eingentlich in c/c++ schreiben um meine kenntnisse etwas aufzufrischen. mittlerweile hat sich aber gezeigt, dass ich da einiges auf mich genommen habe!
    ich habe nun folgendes problem und zwar:

    ich habe ein klasse c_logger. Diese Klasse hat eine methode, welche einfach einen std::string in eine datei schreibt.
    das logging funktioniert auch einwandfrei. bis zu einem gewissen punkt, welcher mir momentan auch nicht reproduzierbar scheint.

    beim aufrufen der log- funktion (welche mit dieser instanz bereits öfters funktioniert hat) erhalte ich eine "Unbehandelte Ausnahme bei 0x7c812a5b"

    und vc++ spring mir in die lib xmemory auf die zeilen

    return ((_Ty _FARQ *)::operator new(_Count * sizeof (_Ty)));

    das problem passiert in meinem source bei

    c_logger::log(char *text){
    log(std::string(text));
    }


    hat da jemand ne idee???
    kann es sein, dass ich irgendwie zu viel speicher verruche? muss ich das std::string wieder freigeben?

    danke für eure Hilfe!

    mfg Haui

  • naja,

    der pointer text wird der funktion direkt übergeben:

    log.log("logge irgendwas!");

    es ist also keine string, für welchen ich selber den speicher reserviere. demnach sollte der speicher eigentlich nach dem austreten aus der funktion wieder frei sein!?

  • nix problem, bin ja froh für jede hilfe ;)

    mit dem terminieren sollte es eigentlich kein problem sein, da es bei vorhergehenden aufrufen der funktion einwandfrei läuft...

    wenn ich den entsprechenden funktionsaufruf testweise auskommentieren, hängt sich das programm beim nächsten aufruf der funktion auf! es sollte also an und für sich kein problem der übergebenen daten sein! denk ich!

    so, ich denk ich häng am besten einen codeschnippsel an. hier die log-methode:

    wohlbemerkt! ich bin nicht gerade der beste c++ programmierner ;)


    edit:
    hab gerade bemerkt, dass das problem bei malloc zu sein scheint!
    qb irgendeinem bestimmten punkt, reserviert mir malloc keinen speicher mehr! ich check nicht ganz warum, aber es ist rekonstruirbar, sprich es geschieht bei jedem neustart des programmes!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!