Передать массив указателей в функцию по ссылке - C (СИ)

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

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

Здравствуйте. Подскажите пожалуйста как передать массив указателей в функцию так, чтобы при изменении этих указателей в функции изменения сохранились бы и в главной программе?

Решение задачи: «Передать массив указателей в функцию по ссылке»

textual
Листинг программы
void Test(char** ppTest)
{
   *ppTest = (char*)0x12345678;
}
 
/////////////////////////////////////////////////////////////////////////
 
int main(int argc,char** argv)
{
   char*    pTest = NULL;
 
   printf("Berore: MyPtr is: %p\n",pTest);
 
   Test(&pTest);
 
   printf("After: MyPtr is: %p\n",pTest);
 
   return 0;
}

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

  1. В функции Test происходит передача массива указателей ppTest в качестве аргумента по ссылке.
  2. Внутри функции Test происходит присвоение значения 0x12345678 указателю ppTest.
  3. В функции main инициализируется указатель pTest значением NULL.
  4. Выводится сообщение с исходным значением указателя pTest с помощью функции printf.
  5. В функцию Test передается адрес указателя pTest с использованием оператора &.
  6. Значение указателя pTest изменяется внутри функции Test на 0x12345678.
  7. Функция Test возвращает управление в функцию main.
  8. Выводится сообщение с новым значением указателя pTest с помощью функции printf.
  9. Функция main завершает свою работу, возвращая 0.

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


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

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

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