Быстрый вопрос

Я пришел, чтобы побеспокоить вас всех другим, возможно, очень простым вопросом C.

Используя следующий код:

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 вопроса Почему они разные и почему у 6? Спасибо, парни.

РЕДАКТИРОВАТЬ: Извините, я знаю, что бы это исправить, я просто хотел понять, что происходит. Так что strlen просто продолжает переадресовывать точку, пока она не найдет \ 0? Кроме того, когда я сделал strlen в основной функции, а не в функции get_len, оба были 4. Было ли это просто совпадением?

Ответы на вопрос(8)

Ваш ответ на вопрос