Массив из структур, расход памяти
- Войдите на сайт для отправки комментариев
Пт, 20/11/2015 - 14:27
Как уменьшить расход памяти при использовании масиива структур?
typedef struct { byte tempAddrAir[8]; byte tempAddrFloor[8]; int16_t tAirRaw; int16_t tFloorRaw; byte flapPin; bool isFlapOn; } Contour; Contour contour1 = { {0x28, 0xFF, 0xB5, 0xAB, 0x90, 0x15, 0x01, 0x8D}, {0x28, 0xFF, 0xAB, 0x39, 0x90, 0x15, 0x01, 0xB5}, 4080, 4080, 4, false }; Contour contour2 = { {0x28, 0xFF, 0x72, 0x3B, 0x90, 0x15, 0x01, 0x1F}, {0x28, 0xFF, 0x14, 0xB1, 0x90, 0x15, 0x01, 0x50}, 4080, 4080, 5, false }; Contour contours[] = {contour1, contour2}; void setup() { } void loop() { }
Sketch uses 590 bytes (1%) of program storage space. Maximum is 30 720 bytes.
Global variables use 97 bytes (4%) of dynamic memory, leaving 1 951 bytes for local variables. Maximum is 2 048 bytes.
т.е получается выделяется 97байт оперативки, а должно быть 22 байта структура их у нас две и 9 байт пустой скетч. Итого 22+22+9 = 53 байта Пока таких структур 2, можно не обращать на повыщеный расход оперативки, но когда структур будет 8.
вы же их сначала объявляете, а потом в массив складываете вот и получается 22+ 22 и массив 22+22, объявляйте сразу в массиве
Как уменьшить расход памяти при использовании масиива структур?
для начала, не дублировать их все дважды.
Точно, всем огромное спасибо! Помогло!!!!
Видимо так:
ua6em, что это было? Джек Дэниэлс или что-то поэкзотичнее?