Как правильно заполнить массив из указателей типа void* - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Насколько я понимаю, его можно заполнить, только присваивая адреса элементам Как это реализовать, если данные вводятся с клавиатуры? Ведь возникает проблема: Ввели данные в переменную, присвоили ее адрес элементу массива Если так продолжить, то все элементы массива будут иметь одинаковый адрес Как вывернуться из такого?

Решение задачи: «Как правильно заполнить массив из указателей типа void*»

textual
Листинг программы
ptr_arr[ i ] = &var_arr[ i ];

Объяснение кода листинга программы

В данном коде происходит следующее:

  1. Создается массив var_arr типа void* размером n элементов.
  2. В каждом элементе массива var_arr хранятся указатели на переменные типа int.
  3. Создается массив ptr_arr типа void* размером n элементов.
  4. В цикле for происходит заполнение массива ptr_arr.
    • В каждой итерации цикла for происходит следующее:
      • Переменная i принимает значения от 0 до n-1.
      • Значение i используется как индекс для доступа к элементу массива var_arr.
      • Результатом выражения &var_arr[ i ] является указатель на элемент массива var_arr с индексом i.
      • Полученный указатель присваивается элементу массива ptr_arr с индексом i.
  5. Возвращаем массив ptr_arr.

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


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

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

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