Использование адреса массива как параметра цикла в функции - C (СИ)
Формулировка задачи:
При выполнении вылетает сообщение об ошибке и аварийное завершение. Что не так в этой функции?
а через указатель всё получается:
//Функция возведения в квадрат массива. void power(int size, float * ar) // параметры: размер и указатель на нулевой адрес массива { for( ;ar <= &ar[size]; ar++ ) *ar *= *ar; // использование адреса массива в кач параметра цикла }
//Функция возведения в квадрат массива с использованием вспомогательной переменной-указателя. void power(int size, float * ar) { float * ptr=ar; for( ;ptr <= &ar[size]; ptr++ ) *ptr *= *ptr; // доступ к массиву через указатель }
Решение задачи: «Использование адреса массива как параметра цикла в функции»
textual
Листинг программы
void power(int size, float * ar) { float * ptr=&ar[size]; // или ptr = ar+size; for( ;ar <= ptr; ar++ ) *ar *= *ar; }
Объяснение кода листинга программы
В данном коде представлена функция с именем power
, которая принимает два аргумента: целочисленный аргумент size
и аргумент ar
типа float *
. Внутри функции происходит следующее:
- Создается указатель
ptr
, который указывает на элемент массиваar
с индексомsize
. Можно представить это какptr = ar + size
. - Задается условие для цикла for, которое проверяет, что значение указателя
ar
меньше или равно значению указателяptr
. - Внутри цикла происходит умножение значения элемента массива
ar
на значение элемента массиваar
. - После выполнения цикла, функция завершается.
Следует отметить, что в данном коде предполагается, что массив
ar
был предварительно инициализирован значениями.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д