C: указатель на адрес указателя, требуется уточнение - PullRequest
1 голос
/ 10 июля 2011

Предположим:

  6   char arr[] = "ABC";
  7 
  8   char *ptr   = &arr;
  9   char *ptr2  = &ptr;

Используя ptr2, как я могу получить доступ к элементам c?

Я бы подумал, что будет работать следующее, но ...не.

**ptr2[1]

Ответы [ 2 ]

5 голосов
/ 10 июля 2011

У вас нет указателя на указатель.

Ваш код должен быть:

char c[] = "ABC";

char  *ptr  = c;     // Note no &
char **ptr2 = &ptr;  // Note **, not *.  This is now a pointer-to-pointer

Затем, чтобы получить доступ, вы хотите это:

(*ptr2)[1]
0 голосов
/ 10 июля 2011

ptr - указатель на массив, поэтому его тип char (*ptr)[] not char *

И ptr2 - указатель на указатель указателя, поэтому его тип: char (**ptr2)[].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...