Несколько вопросов про массивы
- Войдите на сайт для отправки комментариев
Пнд, 09/06/2014 - 12:11
Добрый день
Есть пара вопросов про массивы. Не смог ничего найти в документации на эту тему.
1) Как известно, массив можно инициализировать одной строкой, например:
byte mass1[ ] = {180, 30, 255};
Можно ли проделать подобное с уже инициализированным массивом? Т.е. просто присвоить массиву набор значений одной строкой.
2) Как одному массиву присвоить другой?
3) Как правильно передавать и возвращать массивы в функцию? Или этого не стоит делать в ардуино и лучше использовать глобальные массивы?
Заранее огромное спасибо!!!
1. Нельзя.
2. В цикле.
3. Можно. Какая разница ардуина или нет. Язык поддерживает. В качестве аргумента передаетс алрес первого элемента. Количество элементов массива или глобальная переменная или еще один аргумент или определять (договариваться) с последним элементом, как в массиве символов - последний элемент \0
А документацию читайте внимательно, там все есть и примеры тоже
Если под присвоением подразумевать копирование, то цикл. Если же под присвоением подразумевать приравнивание одного к другому, то массив можно скопировать по ссылке, присвоив одному массиву адрес другого.
Если под присвоением подразумевать копирование, то цикл. Если же под присвоением подразумевать приравнивание одного к другому, то массив можно скопировать по ссылке, присвоив одному массиву адрес другого.
Не....
Это будет все равно один массив, на которы указывает две ссылки. Это к разделу копирование указателей....
Не обязательно копировать в цикле по элементам, есть такие замечательные функции как memcpy и strcpy. Первая копирует содержимое одного куска памяти в другой (дать ей нужно указатели на начало и длинну в байтах), вторая почти то же самое, только работает с null-terminated строковыми массивами.