Programm stürtzt bei strlen immer ab.
-
Hallo,
habe folgendes Problem:void test(char *to) { int len=0; len = strlen(to); //hier stürtzt das programm immer ab -.- }
Wenn ich len nicht mit 0 inistialisiere erhalte ich immer folgende Fehlermeldung:
warning C4700: local variable 'len' used without having been initialized
Habe echt überhaupt keine Ahnung was ich falsch mache.
-
Wie rufst du die Funktion test denn auf?
-
Ganz normal:
char buffer[] = "www.google.de"; test(buffer);
Ich meine dlto wird mir ja auch korrekt angezeigt.
-
Hast du im Post deinen Code stark vereinfacht? So wie der da steht sollte gehen, außerdem sollte da keine Warnung kommen.
-
Du musst den string Null Terminieren
-
mosta_onthego schrieb:
Du musst den string Null Terminieren
sowas hier:
char buf[] = "xyz";
ist null terminiert.erkennbar an der in kraft tretenden abbruchbedingung in der while schleife:
void Nulltermita0r ( char* s ) { if (!s) return; while(*s) *s++ = 0; } int main() { char c[] = "ABC"; printf("String still alive: %s\n", c ); Nulltermita0r (c); printf("String NULLTERMINATED: %s\n", c ); return 0; }
-
mosta_onthego schrieb:
Du musst den string Null Terminieren
Stringliterale sind 0-terminiert.
-
lenError schrieb:
Hallo,
habe folgendes Problem:void test(char *to) { int len=0; len = strlen(to); //hier stürtzt das programm immer ab -.- }
Wenn ich len nicht mit 0 inistialisiere erhalte ich immer folgende Fehlermeldung:
warning C4700: local variable 'len' used without having been initialized
das kann schon mal nicht sein. 'len' wird nirgends benutzt, nur durch 'strlen' gesetzt. ich schlage vor, du zeigst mal die ganze funktion und nicht nur so ein von hand nachgebasteltes beispiel, in dem du den fehler vermutest.