Как получить адрес элементов в массиве символов? - PullRequest
7 голосов
/ 01 марта 2012

У меня есть массив char, и мне нужно получить адрес каждого элемента.

cout << &charArray

дает мне действительный адрес, однако, если я пытаюсь получить адрес определенного элемента, он выбрасывает мусор:

cout << &charArray[0]

Ответы [ 2 ]

8 голосов
/ 01 марта 2012
std::cout << (void*) &charArray[0];

Существует перегрузка operator<< для char*, которая пытается вывести строку с нулевым символом в конце, на которую, по вашему мнению, указывает ваш указатель на первый символ.Но не все массивы char - это строки с нулевым символом в конце, отсюда и мусор.

1 голос
/ 01 марта 2012

Вы можете сделать что-то вроде

&charArray + index * sizeof(char)
...