Возможно ли в Arduino IDE создать массив из структур внутри класса, размер массива заранее неизвестен.
- Войдите на сайт для отправки комментариев
Втр, 19/03/2019 - 23:47
Возможно ли в Arduino IDE создать массив из структур внутри класса, размер массива заранее неизвестен?
Выдает ошибку:
error: invalid use of non-static data member 'TMenu::items'
struct TMenuItem { //
bool edit;
bool focus;
bool editable;
String itemname;
};
class TMenu {
public:
boolean enable;
private:
word items;
TMenuItem MenuItems [items]; <--------------------------------
};
Можно , но не всем. А только тем кто овладел навыком чтения и поиска в гугле . А остальным уже ничто(или никто) не поможет . http://netlib.narod.ru/library/book0003/ch06_05.htm
А причем тут ардуино ИДЕ и структуры ? Это во всем срр виноват. Тебе же написали англицким по белому, мол невозможно не статик создать. Создай статик.
Спасибо за ответы, ткните носом как создать "статик". Или может можно создать пустой массив, а потом задать его длину ? Обкопал пол инета везде голимые примеры массивами извесной длины.
p.s. В с++ ниразу не силён, последний раз было 20 лет назад, ASM и Pascal.
Ну вот как может быть статик массив с изменяемым размером ? :)
Вы пытаетесь сделать то, что без начальных знаний сделать не возможно. Либо выберите массив заведомо большего размера, чем планируете использовать в классе, либо выделяйте память каждый раз когда изменяется размер массива, но о самом правильном способе говорит квон - связные списки, но для этого нужно прочитать статью и вникнуть :)
Ну или вот с картинками:
http://itnotesblog.ru/note.php?id=178
самое простое
в обьявлении класса:
mystruct_t *Items; // mystruct_t - тип структура
потом в канструкторе
Items = new mystruct_t[N] // теперь в Items - массив структур размером N (или 0, если памяти мало)
и в деструкторе (не)обязательно
delete[] Items;