Предположим:
6 char arr[] = "ABC"; 7 8 char *ptr = &arr; 9 char *ptr2 = &ptr;
Используя ptr2, как я могу получить доступ к элементам c?
ptr2
c
Я бы подумал, что будет работать следующее, но ...не.
**ptr2[1]
У вас нет указателя на указатель.
Ваш код должен быть:
char c[] = "ABC"; char *ptr = c; // Note no & char **ptr2 = &ptr; // Note **, not *. This is now a pointer-to-pointer
Затем, чтобы получить доступ, вы хотите это:
(*ptr2)[1]
ptr - указатель на массив, поэтому его тип char (*ptr)[] not char *
char (*ptr)[]
char *
И ptr2 - указатель на указатель указателя, поэтому его тип: char (**ptr2)[].
char (**ptr2)[]