warning: address of local variable 's' returned
- Войдите на сайт для отправки комментариев
Ср, 28/10/2020 - 22:54
история такая, был отработанный проэкт, слетел винт и остался только проэкт,не нашел буилд который был у меня. проблема с фуекцией времени
volatile uint8_t hours;
volatile uint8_t minute;
volatile uint8_t second;
заполняются в RTC_now;
unsigned char* GetTime(){
RTC_now();
byte s[5];
if (hours < 10) s[1] = (uint8_t)('0'+hours); else {
s[0] = ('0'+(hours / 10)); s[1] = '0'+(hours % 10);}
if (minute<10) {s[3] = '0'; s[4] = '0'+minute; }else {
s[3] = '0'+(minute /10); s[4] = '0'+(minute % 10);}
return s;
}
не могу правильно скучковать для вывода суда, в чем ошибка
void ds_printString4(const char *Str,uint8_t X,uint8_t Y)
Переменная byte s[5] освободится после выхода из функции и значение может быть потеряно. Если хочешь так, то выделяй буфер в вызывающей функции и передавай его в GetTime как аргумент.
важно единоразово передать стринг формата 10:24 на дисплей
а раньше все работало, и выводило, щас какоято лажа, переработал 30% кода, вообще уже желание сдвинуть в с++ стороних компилеров без загрущиков, кстати некоторые компилят этот код без проблем
а так работало
для начала переменную s сделать с квалификатором static, чтобы не "протухала".
протухает
С паровозом с амперки не родственники?
Я бы для начала рекомендовал завязывать с фуекциями и сдвинуть к нормальным функциям, в которых реальный возвращаемый тип переменной эквивалентен декларируемому.
зашел через заднее отверстие,код теперь такой
maks321, Вы бы научились, что ли, код нормально выкладывать.
maks321, Вы бы научились, что ли, код нормально выкладывать.
Да и программировать надо учиться, а то сначала напишет кривой код, а потом у него компиляторы виноваты
которые
А эту вашу абдурину оставьте для детского сада и лохов.
Никого не напоминает? (я уже у ТС спрашивал)