Quick strlen question

Ich bin gekommen, um euch alle mit einer weiteren, wahrscheinlich sehr einfachen C-Frage zu belästigen.

Verwenden Sie den folgenden Code:

int get_len(char *string){

    printf("len: %lu\n", strlen(string));

    return 0;
}

int main(){

    char *x = "test";
    char y[4] = {'t','e','s','t'};

    get_len(x); // len: 4
    get_len(y); // len: 6

    return 0;
}

2 Fragen. Warum unterscheiden sie sich und warum ist y 6? Danke Leute

EDIT: Tut mir leid, ich weiß, was es beheben würde, ich wollte nur verstehen, was los war. Leitet strlen den Punkt also weiter, bis zufällig eine \ 0 gefunden wird? Auch als ich strlen in der main-Funktion anstatt in der get_len-Funktion gemacht habe, waren beide 4. War das nur ein Zufall?

Antworten auf die Frage(16)

Ihre Antwort auf die Frage