Speicherproblem



  • HI!

    Folgende funktion wird Fehlerfrei und ohne mekern kompiliert.
    So aber wenn ich diese Funktion aufrufe (im Programm, als alert) bekomme ich eine Fehlermeldung:

    Zigriffsverletzung bei Adresse: 00407301 in Modul 'ffchat.exe'. Lesen von Adresse 00824f8C
    

    Das ist die Funktion:

    [cpp]AnsiString explode(char trennzeichen, string text, int shownpart)
    {
    AnsiString out;
    int s;
    int e=1;
    FILE *f;
    char text_char;

    int x;
    int i;
    s = strlen(text.c_str());
    for (i=0;i<s;i++)
    {
    //text[i] = texti[i];
    f=fopen("tmpsav","a+");
    fputc(text[i], f);
    fclose(f);
    if (text[i] == trennzeichen && e == shownpart)
    {
    i=s;
    }
    if (text[i] == trennzeichen && e != shownpart)
    {
    e++;
    }
    }
    FILE *fk;
    //int s=0;
    char test[540];
    fk=fopen("tmpsav","r");
    while(fgets(test,sizeof(test),fk))
    {
    out += test;
    }
    return out;
    }[/cpp]

    MFG Frey



  • Das mit dem explode hatten wir doch erst vor kurzem im c++ Forum!?

    Vielleicht erzählst Du uns einfach mal, was die Funktion können soll und dann sagen wir Dir, was daran falsch ist.

    Außerdem fehlt am Schluß das Schliessen der offenen Datei.



  • Sorry das ich so blöd war aber ich hätte in der oberen anweisung w+ verwenden müssen.
    Jetzt rults


Anmelden zum Antworten