Как объявить глобальный массив не зная за ранние его размера?
- Войдите на сайт для отправки комментариев
Вс, 07/02/2016 - 18:16
Здравствуйте форумчане.
Подскажите пожалуйста как в теле функции void setup обявить массив данных который будет виден во всех функциях. В шапке программы не получается его обявить так как размер масива вычесляется в функции setap по количеству занятой памяти EEPROM.
Пробовал так: public key [i]; но компилятор руганулся на public.
Зарание спасибо.
http://arduino.ru/Reference/Array
http://arduino.ru/Reference/Array
Увы, не прокатывает. С такой же проблемой на днях столкнулся.((((
Желает иметь только явные значения.
Спасибо я это уже читал но к сожалению под мою задачу там подходящего нечего нету.
Да я там в верху не правильно написал я пробовал public long key [i]; где i вычесленное занчение занятой памяти в EEPROM.
Здравствуйте форумчане.
Подскажите пожалуйста как в теле функции void setup обявить массив данных который будет виден во всех функциях. В шапке программы не получается его обявить так как размер масива вычесляется в функции setap по количеству занятой памяти EEPROM.
Пробовал так: public key [i]; но компилятор руганулся на public.
Зарание спасибо.
Вы пишете весь код в одном файле *.ino или у вас есть другие файлы с исходным кодом, например, *.cpp и *.h? От этого зависит, каким образом объявить переменную, видимую всем и везде.
1. Если весь код в кучу, как любят тут на форуме - то достаточно сверху от setup() написать
2. Если файлов с исходным кодом много, то надо в заголовочном файле принудительно экспортировать переменную, указав
А в исходном - объявить её, как указано в пункте 1.
После этого, когда вы вычислили размер массива, вам надо сделать так:
И уже потом обращаться по индексу, например, так:
Либо описать глобально массив с максимально нужной длиной, либо использовать malloc http://www.cplusplus.com/reference/cstdlib/malloc/ в setup после определения требуемой длины массива.
Нужно помнить, что объем памяти не безграничен. Не стоит злоупотреблять malloc/free.
Откуда взялся public, где Вы такое видели?
Откуда взялся public, где Вы такое видели?
Ну такое встречал в С++ и Java
DIYMan
Большое спасибо сейчас попробую как вы посоветовали.