Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/40: Рейтинг темы: голосов - 40, средняя оценка - 4.78
1 / 1 / 1
Регистрация: 24.09.2012
Сообщений: 117
1

Для чего нужен двойной указатель?

08.01.2013, 19:35. Показов 7575. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно качественное объяснение для чего нужен двойной указатель? Где он применяется?

И покажите пример кода для обращения к двумерному массиву через указатель на указатель.

Язык Си, важно!

Добавлено через 1 час 17 минут
вопрос в силе
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.01.2013, 19:35
Ответы с готовыми решениями:

Функция fread: Для чего указатель устанавливается в конец файла?
Доброго времени суток! Не могу понять для чего при чтении данных с текстовго документа нужно...

Двойной указатель - Правильно выполнить присваивание
Ребят, помогите правильно выполнить присваивание int pop(struct stack **st) { struct stack *temp...

Стандарт или для чего нужен return 0 ?
Здравствуйте. Нужна помощь в понимании. Например есть всем известная программа #include <stdio.h>...

Считывание одной строки, не используя в качестве аргумента функции двойной указатель
Язык C начал изучать недавно. Хочу написать функцию считывания строки без ограничения на её длину....

1
179 / 127 / 25
Регистрация: 12.01.2012
Сообщений: 623
08.01.2013, 20:18 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Трудно объяснить, но например вот так:
C
1
2
3
4
5
6
7
8
9
10
11
12
void toNull(int ** ptr)
{
   // функция, обнуляющая указатель ptr
   *ptr = NULL;
}
 
void main()
{
   int *myPtr;
   
   toNull(&myPtr); // теперь myPtr = NULL
}
Т.е. для изменения значения указателя(адреса) внутри функции.
Применение в двумерном массиве примерно таково:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdlib.h>
 
void toNullArr(int ** arr, int rows, int columns)
{
   // обнуляет двумерный массив arr размерности rows x columns
   for (i = 0; i < rows; ++i)
   {
      for (j = 0; j < columns; ++j)
      {
         arr[i][j] = 0;
      }
   }
}
 
void main()
{
   const int rows = 5;
   const int columns = 4;
   int ** arr;
   int i, j;
   
   arr = malloc(sizeof (*arr) * rows); // выделение памяти под указатели на массивы
   
   for(i = 0; i < rows; ++i)
   {
      arr[i] = malloc(sizeof (**arr) * columns) // выделение памяти под массивы
   }
   
   toNullArr(arr, rows, columns); // обнулить массив
}
1
08.01.2013, 20:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.01.2013, 20:18
Помогаю со студенческими работами здесь

Непонятный кусчек кода, для чего он нужен.Непонятно его значение
Всем привет! Снова вопрос, как можно реализовать следующую вещь: Допустим я ввожу какой либо...

Непонятный кусчек кода, для чего он нужен.Непонятно его значение. Перезагрузка
Интересный шаблон нашел, чтобы ненужные значения сразу отбрасывать, вот только в одной части...

Для чего нужен: printf ("Vvedite massiv \n"); ?
#include &lt;stdafx.h&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; void main () { int A, N, M, T, k,...

Для какой надобности используют указатель на указатель?
Здравствуйте! у меня вопрос такой, для какой надобности используют указатель на указатель?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru