как присвоить одинаковые значения элементам массива
- Войдите на сайт для отправки комментариев
Ср, 22/02/2017 - 19:25
как присвоить одинаковые начальные значения элементам массива.
пробую так int array[10]={1};
в итоге присваивается 1 только первому элементу.
int array[10]={1,1,1,1,1,1,1,1,1,1,1}; -это как утомительно, особенно для многомерных массивов.
У меня есть еще вариант: в setup вставить цикл
for (int i=0; i<10; i++){
array[i]=10;
}
Уважаемые программисты.подскажите "зеленому"!
Чего-нибудь стандартного для общего случая нет (есть gnu расширение как раз для этого случая, но оно не работает для C++). Бывают костыли, но второй вариант проще всего.
Можно использовать мемсэт http://www.cplusplus.com/reference/cstring/memset/?kw=memset
Но если новичёк, то крутите циклы и не морочьте голову, я и сам предпочёл бы цикл
memset ограничен байтовыми значениями.
А в чем проблема?
Чтобы присвоить элементам массива значения цикл необходим. Что бы у Вас ни было написано в коде (считаем, что в языке устраивающая Вас конструкция есть), процессору все равно придется крутить цикл.
Так что сэкономить не получится. От слова совсем. (нет, 10 байт, конечно, можно присвоить и десятью строками без цикла)
А если Вас вариант цикла не устраивает чисто эстетически, придумайте для него #define как только душеньке угодно.
Не в качестве рекомендации, исключительно с иллюстративной целью - фрагменты из широко используемых библиотек.
Официальная библиотека Wiznet, https://github.com/Wiznet/WIZ_Ethernet_Library/blob/master/Arduino%20IDE...
Стоковая библиотека Ethernet:
Такое впечатление, что сделано в полном соответствии с отраслевым стандартом "х..як, х..як и в продакшн". Или я чего-то не понимаю в стиле и моде программирования ?
Или я чего-то не понимаю в стиле и моде программирования ?
ты гламурный и стильный прогер
Спасибо откликнувшимся. Буду крутить цикл, так как я совсем новенький еще.
Язык не знаю, с программированием знакомился еще в школе. Пробую все методом гугла и научного тыка.
Пытаюсь переделать скетч под свои нужды.
Еще подскажите как это можно написать в цикле?
Тогда и в функции getTemp() можно организовать цикл.
Просьба отвечать максиьально простым языком, для чайника!
Полагаю вам очевидно, что нужен массив элементов sensor типа DeviceAddress? Инициализировать его нужно так:
DeviceAddress sensors [] { //указывать количество элементов тут не надо, препроцессор сам посчитает
{0x28, 0xFF, 0x08, 0x26, 0x34, 0x16, 0x04, 0x68},
{0x28, 0xFF, 0x01, 0x4D, 0x34, 0x16, 0x04, 0x9F},
{0x28, 0xFF, 0x75, 0x2D, 0x34, 0x16, 0x03, 0xFE},
{0x28, 0xFF, 0x84, 0x4D, 0x34, 0x16, 0x04, 0x86},
{0x28, 0xFF, 0x4D, 0x28, 0x34, 0x16, 0x03, 0xC5},
{0x28, 0xFF, 0xF7, 0x4D, 0x34, 0x16, 0x04, 0xA5},
{0x28, 0xFF, 0x8C, 0x30, 0x34, 0x16, 0x04, 0x8D},
{0x28, 0xFF, 0x8C, 0x30, 0x34, 0x16, 0x04, 0x8D},
{0x28, 0xFF, 0x8C, 0x30, 0x34, 0x16, 0x04, 0x8D},
{0x28, 0xFF, 0x8C, 0x30, 0x34, 0x16, 0x04, 0x8D},
};
ну и само собой работать в цикле как с обычным массивом
for (int i = 0; i < 10; ++i)
DS18B20TempTmp[i] = DS18B20.getTempC(sensors[i]);
sefjor спасибо. то что нужно
Это у тебя юмор такой? Когда это sizeof возвращал количество элементов массива?
Кол-во элементов массива возвращает конструкция: