Hallo,
:new:
und
ich habe ein Problem mit einer C-Funktion. Ich möchte eine Trim-Funktion selber schreiben. Die wird es vielleicht schon in string.h geben, ist mir aber egal. Hier erstmal der C-Code:
char *trim(char *expression){
printf("1: %ld\n", expression);
while (*expression == ' '){
expression++;
}
printf("2: %ld\n", expression);
char *j = expression;
while (*expression != 0){
expression++;
}
if (j != expression) expression--;
printf("3: %ld\n",i);
printf("4: %ld\n",expression);
printf("5: '%c'\n",*expression);
printf("6: %ld\n",*expression);
while (*expression == ' '){
printf("7: %ld\n",expression);
printf("8: '%c'\n",*expression);
printf("9: %ld\n",*expression);
//Hier der Absturz...
*expression = 0;
expression--;
}
return j;
}
Warum stürzt das Programm in der Zeile "*expression = 0" ab? Ich krieg die blöde Trim-Funktion einfach nicht hin. Der Aufruf
printf("Ergebnis: '%s'\n", trim(&" A B c "[0]));
druckt entweder
'A B c '
statt
'A B c'
oder alles stürzt ab. Ich habe daraufhin das bloodsheed Dev C++ nochmal installiert. Der Fehler kam trotzdem wieder. Dann habe ich MinGW 5.1.4 vom 26. April 2008 installiert und im Dev-C++-Editor/Debugger alle Pfade angepasst. Nichts ändert sich. Dann habe ich MS Visual C++ 2008 Express installiert. Das sagt an der selben Stelle sowas wie:
Unbehandelte Ausnahme bei 0x0041199a in ZweiterTest.exe: 0xC0000005: Zugriffsverletzung beim Schreiben an Position 0x00416789.
Hat jemand eine Idee, wie es weiter gehen könnte?
Gruß
bGeissl