Для чего нужен двойной указатель? - C (СИ)
Формулировка задачи:
Нужно качественное объяснение для чего нужен двойной указатель? Где он применяется?
И покажите пример кода для обращения к двумерному массиву через указатель на указатель.
Язык Си, важно!
вопрос в силе
Решение задачи: «Для чего нужен двойной указатель?»
textual
Листинг программы
void toNull(int ** ptr)
{
// функция, обнуляющая указатель ptr
*ptr = NULL;
}
void main()
{
int *myPtr;
toNull(&myPtr); // теперь myPtr = NULL
}
Объяснение кода листинга программы
- В данном коде представлена функция toNull, которая принимает двойной указатель на целочисленный массив и обнуляет его.
- В функции main создаётся указатель на целочисленный массив с именем myPtr.
- Затем вызывается функция toNull, передавая ей адрес указателя myPtr.
- Функция toNull обнуляет указатель myPtr, записывая в него значение NULL.
- Значение NULL означает, что указатель myPtr не указывает на определенный целочисленный массив в памяти компьютера, а указывает на специальное значение, которое обычно используется для обозначения
неизвестногоилинеинициализированногозначения. - Значение NULL часто используется в программировании для обозначения
неизвестногоилинеинициализированногозначения указателя. - После выхода из функции main, указатель myPtr останется в состоянии NULL.
- Если попытаться использовать указатель myPtr для доступа к элементам целочисленного массива, программа выдаст неопределенное поведение, так как myPtr не указывает на действительный адрес в памяти компьютера.
- Чтобы исправить это, указатель myPtr должен быть инициализирован адресом действительного целочисленного массива перед его использованием.