вот тото и оно!
А без этого вообще о чем говорить? Чтобы обнулить структуру с базовыми типами, вообще не нужно никаких прыжков и ужимок, деструктор по умолчанию справится сам.
тут фигня написана
Ну, это форум по Ардуино, потому, согласитесь, IDE искаропки – штатная тестовая среда, нравится оно кому-то или нет.
Вы, сударь, простите, за кого меня держите?
Не скажу откуда цитата. Кто не знает – сам себе буратина
– Это водка? – слабо спросила Маргарита.
Кот подпрыгнул на стуле от обиды.
– Помилуйте, королева, – прохрипел он, – разве я позволил бы себе налить даме водки? Это чистый спирт!
В стандарте языка массивов нулевой длины не бывает, а то, что gcc ввёл такое расширение, еще на повод приводить такие коды в доказательство! Нет, уж, мы всё делам по правилам и стандартам!
Дилетантский вопрос: зачем структуру вообще обнулять? Ничего не приходит на ум где это было бы необходимо. И если очень надо, то почему не обнулить ручками, прям вот нолики присвоить всем членам структуры?
не, до меня наконец дошло - @vvb333007 хочет предложить какой-то хак для переинициализации структуры, чтобы не надо было полям вручную нолики присваивать.
Но вопрос про поля с динамически выделенной памятью остался.
вспомнил вроде.Попадалось такое в какой-то книжке прошлым летом.
Это не фишка ГСС, а новация в части ООП синтаксиса. Если конструктору передать ссылку на существующий обьект, он вместо того чтоб создать новый, просто переинициализирует старый на том же месте в памяти.
все просто если структура используется во многих местах проекта , а также в прерываниях и имеет нное кол-во полей часть из которых использует 0 как индификатор неосуществленного действия , то гораздо прощее ее полностью обнулить , чем вспоминать , где и какое ты поле уже использовал и оно не нулевое… …
Конечно можно обьявить ее локально в пределах процедуры, но мне она например нужна глобально…
Можно конечно и ручками …но когда 2-3 поля то нормально , а вот много полей… есть вариант что нибудь забыть …
ну и да … например массив символов 20 чаров … когда-то записал 20 символов, потом обнулил записав в начало \0., а потом заполнил на 10 байтов… а в итоге получил 10 байтов +мусор. . Я понимаю , что надо следить за этим , что перед внесением надо очищать всю строку и т.д , но когда таких моментов много вероятность плавующей ошибки растет … так зачем все эти мытарства когда проще перед новым использованием ее просто обнулить , зная что после окончания процедуры значения уже не актуальны… Ну както так сумбурно но вроде понятно…
бред пишете. Как раз текстовый буфер чистить абсолютно не зачем. С ним нужно работать правильно - и проблем не будет.
Всегда, когда вы копируете новую строку в буфер, она должна завершатся терминатором - то есть \0
И тогда если вы внесли в буфер 10 байтов и \0 - вам будет абсолютно фиолетово на мусор в остальных ячейках.
Как верно подметили я на си пишу… нема методов .
Насчет неправильно спроектировал … да это возможно , но пока вот недогнал, как подругому можно …все еще разбираюсь… одну из граблей привел в пример
в том то и проблема я не строку копирую, а байтами и иногда не все зараз , а собирая по частям…
я уже писал понятно , что можно перед использованием обнулить , либо после использования… либо все время дописывать ‘\0’, ручками… как собственно и делал , но когда полей много не проще просто за раз все обнулить и не ломать голову…