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