2012-04-16 2 views
-1

Как преобразовать символ char * в char.Преобразование символа char * в char

У меня есть указатель обугленного

char * Data который получает некоторое значение

У меня также есть переменная

char result;

Могу ли я сделать

result = *(Data)?

Если я это сделаю, то он набрасывает мне нулевое назначение указателя.

Я хочу сохранить значения в массиве результатов для разных значений «Данные» в цикле.

+8

Вы, кажется, довольно смущены основами C. Я предлагаю «язык программирования C» Кернигана и Ричи. В любом случае '' result = * Data'' вы получите первый символ в Data, если у него есть что-то для начала. – dimatura

+5

Трудно ответить на это без дополнительной информации. Что такое 'данные'? Является ли это указателем на один символ «char» или строку? И похоже, что у вас есть более фундаментальная проблема (отсюда и ошибка), которую мы не можем диагностировать, не видя какой-то соответствующий код. Если вам нужна конкретная помощь, я предлагаю создать [минимальный тестовый пример] (http://sscce.org). –

+0

Код в основном [здесь] (http://stackoverflow.com/questions/10180701/how-to-save-a-value-from-pointer-into-a-char-array) – Mat

ответ

0

Вы не указали, сколько времени или что именно хранится в Data.

char * обычно указывает на массив символов.

Возможно, вы получаете нулевой указатель, потому что char* Data не был инициализирован ни с какой строкой данных.

result = *Data; поможет вам первый символ, но вы должны сначала данные внутри вашей Data переменной, чтобы начать с

2

Ваш код является правильным, но вы должны проверить, что «Data» может быть нулевым - поэтому вы испытываете нулевое назначение указателя. Убедитесь, что вы используете «Данные» для правильной итерации вашего массива символов.

+0

@kay: Справедливости ради, он сделал. Есть некоторые подробности, но есть код, и если вы внимательно присмотритесь, вопрос будет ясен. Он не понимает, почему он получает нулевой указатель и хочет знать, правильно ли результат = *. –

Смежные вопросы