Непонятки с кодом

Тема в разделе "Arduino & Shields", создана пользователем Tomasina, 29 окт 2019.

  1. Tomasina

    Tomasina Сушитель лампочек Модератор

    То ли глаз замылился, то ли я туплю...
    Есть код:
    Код (C++):
      char userTime[8];
      userTime[0] = hh / 10 + '0';
      userTime[1] = hh % 10 + '0';
      userTime[2] = ':';
      userTime[3] = mm / 10 + '0';
      userTime[4] = mm % 10 + '0';
      userTime[5] = ':';
      userTime[6] = '0';
      userTime[7] = '0';
      RtcDateTime manual = RtcDateTime(__DATE__, userTime);
      Serial.print(F("Save time to RTC... ["));
      Serial.print(userTime);
      Serial.println(F("]"));
    В консоль выводится вот такой результат:
    Почему выводится ещё и "LEDs: 7:45 - 20:15", если переменная userTime ограничена всего 8-ю элементами?
    Код вывода "LEDs: 7:45 - 20:15" формируется в другом месте и он вообще не пересекается и не вызывается в этом месте.
     
  2. SergeiL

    SergeiL Оракул Модератор

    А завершающий ноль? Конец строки.
     
  3. DetSimen

    DetSimen Guest

    Код (C++):
    char usertime[9];
    .
    .
    usertime[8]='\0x00';
     
  4. Asper Daffy

    Asper Daffy Иксперд

    Дед! 8-то откуда? :)
     
  5. DetSimen

    DetSimen Guest

    не понял. строка 9 символов, в последний пишем 0, где я неправ?
    Мошт у меня сёдня нейронка унутре слабо горит? Не спорю, интоксикацея.
     
    Последнее редактирование модератором: 29 окт 2019
    Andrey12 нравится это.
  6. Asper Daffy

    Asper Daffy Иксперд

    Так, вроде ж написано у ТС в первой строке

    char userTime[8];

    или я чего-то пропустил?

    А-а-а я пропустил, что ты написал 9!!! Сорри, не заметил!
     
    Andrey12 и DetSimen нравится это.
  7. DetSimen

    DetSimen Guest

    значить, горит нейронка пока. :)
     
    Andrey12 и Asper Daffy нравится это.