Использование адреса массива как параметра цикла в функции - 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 *. Внутри функции происходит следующее:

  1. Создается указатель ptr, который указывает на элемент массива ar с индексом size. Можно представить это как ptr = ar + size.
  2. Задается условие для цикла for, которое проверяет, что значение указателя ar меньше или равно значению указателя ptr.
  3. Внутри цикла происходит умножение значения элемента массива ar на значение элемента массива ar.
  4. После выполнения цикла, функция завершается. Следует отметить, что в данном коде предполагается, что массив ar был предварительно инициализирован значениями.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.929 из 5
Похожие ответы