Господа, подскажите плз Как правильно заполнить элемент в структуре? в переменную str2 сперва считываю время, а потом дату. Но в обоих элементах структуры появляются одни и те же данные (дата). Видимо не правильно делаю присвоение. Может не правильно объявил структуру screen?
Комментарии: 12
Central
за такое наименования переменных, надо возможность писать код отбирать
Anonim
ну чо начинается то? :-)))) самое забавное, что эти "правила хорошего тона" не имеют ничего общего ни с синтаксисом, ни с чем вообще.
Anonim
это же обфусцирование... когда разраб умрет - код можно обоссать и сжечь, все-равно потом хрен кто разберется ) (не конкретно этот примитивный код, а код в таком стиле) у вас 02string и 03string указывает на одну и ту же область памяти (выделенную под str2[16]) соответвенно и значение там одинаковое надо или две переменные на стеке или динамическую память использовать
Nazarij
посоветуйте dc dc step up для зарядки лития 22,2в
Anonim
я примерно так и подумал. когда в дебаггере увидел, как они одновременно поменялись
Anonim
а если объявлять элементы не char *_02string; а char _02string[16]; ???
Anonim
делай так, если экранов всего 9 у тебя, не так много потеряешь
Anonim
т.е. фактически это будет 9 как бы массивов. Так?
Kernel
Проблема лишь в том, что надо аккуратно следить за тем, чтобы каждая структура получала только точный адрес своего кусочка буфера и не затирала соседей/место вне буфера.
Anonim
да, каждая структура у тебя будет 68 байт... * 9 элементов = 612 байт на стеке... независимо от того лежит там что-то или нет
Kernel
Например, так: ROWLEN 80 ROWS 25 static uint8_t row_buffer [ROWS * ROWLEN]; f() { row_buffer[row * ROWLEN + offset] = 'a'; return row_buffer[row * ROWLEN]; } Или вот так Я лишь предложил убрать буфер в одно место не в стеке, а в статической памяти (которой доступно, как правило, несколько больше), а потом привязывать к нужным структурам.
Th0r
Память надо выделять, если указатели используешь бездумно