Получить адрес массива символов и затем преобразовать его в указатель - PullRequest
0 голосов
/ 22 марта 2019

Я конвертирую свою строку и bytearray в массив символов.

char nameData[90];
char passData[90];
strcpy(nameData, name.toStdString().c_str()); //string
strcpy(passData, pass.data()); //bytearray

Теперь мне нужно получить адрес nameData и passData, чтобы установить его в качестве указателя? Или легко преобразовать строку и байтовый массив в указатель на символ?

Мне нужно преобразовать его в указатель на символ, чтобы сохранить его в файл.

Ответы [ 2 ]

0 голосов
/ 22 марта 2019

Мне нужно получить адрес с именем Data

Указатель на символ указывает на символ. Строго говоря, он не указывает на массив.

Однако ваш массив - это массив объектов типа char. Итак, я понимаю, что вы на самом деле имеете в виду «Мне нужно получить адрес первого символа nameData» .

Это довольно просто. Массив неявно преобразуется в указатель на первый элемент массива. Фактически, имя массива распадается на этот указатель всякий раз, когда используется значение. Итак, просто назначьте указатель:

char* pointer = nameData;

Мне нужно преобразовать его в указатель на символ, чтобы сохранить его в файл.

Возможно, вам даже не нужна переменная указателя. Просто передайте массив непосредственно в функцию, которая принимает аргумент указателя символа.

0 голосов
/ 22 марта 2019

Я думаю, что просто использовать преобразование типов будет в порядке. например char* pNameData = (char*) nameData. Фактически, вы можете использовать nameData напрямую как указатель char* в C или C ++.

...