Передать массив указателей в функцию по ссылке - 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; }
Объяснение кода листинга программы
- В функции
Test
происходит передача массива указателейppTest
в качестве аргумента по ссылке. - Внутри функции
Test
происходит присвоение значения 0x12345678 указателюppTest
. - В функции
main
инициализируется указательpTest
значением NULL. - Выводится сообщение с исходным значением указателя
pTest
с помощью функцииprintf
. - В функцию
Test
передается адрес указателяpTest
с использованием оператора&
. - Значение указателя
pTest
изменяется внутри функцииTest
на 0x12345678. - Функция
Test
возвращает управление в функциюmain
. - Выводится сообщение с новым значением указателя
pTest
с помощью функцииprintf
. - Функция
main
завершает свою работу, возвращая 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д