strtok вызывает segfault, но не при пошаговом выполнении кода

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

Ниже приведен код:

char * dateTimeString = "2011/04/16 00:00";
char dateVar[11];
char timeVar[6];

if (splitTimeAndDateString(dateVar, timeVar, dateTimeString))
{
    exit(1);
}

printf("Date: %s\tTime: %s\n", dateVar, timeVar);

Ниже функция

int splitTimeAndDateString(char date[11], char time[6], char * dateString)
{
    char *token;
    token = strtok(dateString, " ");
    int i = 0;
    while (token != NULL)
    {
        if (i == 0)
        {
            strcpy(date, token);
        }
        else if (i == 1)
        {
            strcpy(time, token);
        }
        else
        {
            printf("Overrun date time string\n");
            return 1;
        }
        token = strtok(NULL, " ");
        i++;
    }
    return 0;
}

Спасибо за любую помощь, которую вы можете предоставить.

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

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