Установка размера массива
- Войдите на сайт для отправки комментариев
Втр, 13/05/2014 - 23:44
В EEPROM хранятся ID некторых модулей. В первой ячейке количесто этих ID, в последущих ячейках хранятся сами ID.
Я хочу считать первую ячейку и создать массив такого размера и заполнить его индетификаторами.
byte countMod = EEPROM.read(0); byte IDs[countMod];
Но так объявить масив не получается. Подскажите как решить эту проблему.
Вот какая ошибка: error: array bound is not an integer constant
Один из вариантов - создать массив максимальной длины. А в countMod держать реальное количество, его и использовать в циклах и т.п.
Другие варианты зависят от задачи, потому что здесь Ваше видение решение задачи, а оно (решение) может быть совсем другим. Так часто бывает.
Создать массив в куче
Ообъявлять массив большого размера не самое оптимальное решение, особенно есди это массив структуры в которой много полей.
danis, зачем что-то копировать из eeprom в ram, тем более "большого размера"? Почему бы не использовать данные прямо из eeprom? Причина "так быстрее" принимается вместе с обоснованием необходимости "быстрее" и результатами замеров скорости "медленной" работы. И посмотрите библиотеку EepromEx.