Проблема в том, что вы должны передать указатель на scanf .Обычно вы передаете массив (который является указателем) или символ-указатель (строка).То, что вы делаете, передает сам символ.У метода нет возможности записать что-либо в символ, потому что он копируется до вызова функции.
В таком случае происходит то, что метод интерпретирует неинициализированный символ как адрес и пытается записать в случайное место, котороескорее всего не получится.
Просто передайте адрес символа:
char message[MAX_LEN];
printf("Enter a message: ");
for (int i = 0; i < MAX_LEN - 1; i++)
scanf("%c", &message[i]);
for (int i = 0; i < MAX_LEN - 1; i++)
printf("%c", message[i]);