разница между char * и char [] с помощью strcpy ()

В последние пару часов у меня были проблемы с проблемой, которую я понял. Вот моя проблема:

void cut_str(char* entry, int offset) {
    strcpy(entry, entry + offset);
}

char  works[128] = "example1\0";
char* doesnt = "example2\0";

printf("output:\n");

cut_str(works, 2);
printf("%s\n", works);

cut_str(doesnt, 2);
printf("%s\n", doesnt);

// output:
// ample1
// Segmentation: fault

Я чувствую, что в char * / char [] есть что-то важное, чего я здесь не получаю.

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

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