Помогите В чём ошибка при создании динамического массива?
- Войдите на сайт для отправки комментариев
Вс, 23/10/2016 - 21:27
struct Timer { uint8_t ID_TIMER = 0; uint8_t WEEK_OR_EACH_DAY = 1; // 1 for 1st week, 2 for 2nd week, 0 - each day bool ACTIVE_TIMER = true; uint8_t DOW = 0; uint8_t TIME[8]; uint8_t DAY = 0; uint8_t MONTH = 0; uint16_t YEAR = 0; //format XX }; Timer* Timers_pointer; //Создаём Массив размером s Timers_pointer = (Timer*)malloc(sizeof(Timer)); // Под 1 Таймер
сама ошибка:
"_1_NewSortirovka_21.10.16_Time:365: error: 'Timers_pointer' does not name a type" и она первая в списке ошибок
С обычным массивом "Timer Timers[TIMERS];" ошибок нет
Не могу понять почему он думает что указатель это тип?
Или может библиотеку надо какуюто подключить?
Надо бы структуру Timer и переменную Timer назвать по разному.
Обычно это делается так:
Это же Тип структуры а не имя, не понял что к чему
Открой MSDN
mystruct - это тип твоей переменной;
mystructtag - это тэг структуры.
1 "'PTimer' does not name a type" на 13 пока не добавил "typedef" - очень странно, опять закидоны A IDE
2 Теперь ошибка "'Timers_pointer' does not name a type" в 15
в твоём примере mystruct - это имя переменной, mystructtag - это новый тип данных
открой любой учебник
или тот же мсдн
https://msdn.microsoft.com/ru-ru/library/64973255.aspx
Обычно это делается так:
Твой пример не работает ))
Если есть typedef, то mystruct - это имя типа, а всё что между ними - описание базового типа, на основе которого объявляется описание нового типа. В этом примере typedef использовался для объявления двух типов сразу - типа структуы TIMER и указателя на эту структуру PTIMER. Таким образом описаны структуры во всех стандартных заголовочниках windows.
Мой пример работает. Я его скомпилировал, прежде чем писать сюда.
На всякий случай. Вызов функции malloc() можно делать только внутри setup() или loop(), но не при объявлении указателя.
Мой пример работает. Я его скомпилировал, прежде чем писать сюда.
а уменя не работает, я отсюда копировал код. блин
Он у тебя где в скетче написан, перед setup?
На всякий случай. Вызов функции malloc() можно делать только внутри setup() или loop(), но не при объявлении указателя.
спасибо и мой код заработал ) чёт затупил и правда, все функции ведь из майна вызываюся )
только внутри setup() или loop() или в вообще в любой функции?
Внутри любой, но не в глобальной области при объявлении переменных.