Геморой с преобразованием INT в char*

Все о программировании под *nix
Anonymous

Геморой с преобразованием INT в char*

Сообщение Anonymous »

Народ!!! Вся надежда только на вас. Очень срочно необходимо победить проблему (см. сабж). Уже перепробвано куча способов для ентого преобразования, но при попытке вывести результат преобразования (переменную типа char *) вываливается ошибка segmentation fault.

Кто встречался с таким или знает как можно обойти, расскажите, пожалуйста.

заранее премного благодарен.

_kirya85

Сообщение _kirya85 »

Не совсем понятно, что ты пытыешся сделать. Если хочешь символьное предстовление числа, то это делается по-другому, например с помощью sprintf, хочеш вывести на экран - printf, хочеш получить указатель (char*) на число - (char*)&a, где a - int.

Аватара пользователя
kas
Маньяк
Сообщения: 184
Зарегистрирован: 10 июл 2002, 03:15
Откуда: Минск

Сообщение kas »

Извиняюсь за орфографию - я ещё не проснулся ;)
- Говорят, пингвин - это ласточка разжиревшая от лени?
- Нет. Это ласточка беременная мыслью.

Anonymous

Сообщение Anonymous »

Я хочу из
INT p = 1234
получить CHAR *m = (char *)p;

но, чтобы это после cout << m, не выдавала ошибку Segmentation fault.

Аватара пользователя
kas
Маньяк
Сообщения: 184
Зарегистрирован: 10 июл 2002, 03:15
Откуда: Минск

Сообщение kas »

Ты пытаешся вывести адрес?
- Говорят, пингвин - это ласточка разжиревшая от лени?
- Нет. Это ласточка беременная мыслью.

Аватара пользователя
kostaLom
Маньяк
Сообщения: 170
Зарегистрирован: 24 авг 2002, 14:14
Откуда: 9-й Отдел
Контактная информация:

Сообщение kostaLom »

kuza писал(а):Я хочу из
INT p = 1234
получить CHAR *m = (char *)p;

но, чтобы это после cout << m, не выдавала ошибку Segmentation fault.
Нет прав на чтение страницы в памяти?

Anonymous

Сообщение Anonymous »

Мне надо передать в подпрограмму параметр char *, чтобы он потом вывел на экран содержимое, а то, что мне надо передать находится в INT.

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Сообщение Llama »

Как я понял, тебе хочется получить строковое представление числа?
Из 123 получить строку "123"
Опыт растет прямо пропорционально выведенному из строя оборудованию

Аватара пользователя
kas
Маньяк
Сообщения: 184
Зарегистрирован: 10 июл 2002, 03:15
Откуда: Минск

Сообщение kas »

int p=123;
char* m="%d";
sprintf(m,p);
cout << m;
- Говорят, пингвин - это ласточка разжиревшая от лени?
- Нет. Это ласточка беременная мыслью.

Lynxer
Неотъемлемая часть форума
Сообщения: 285
Зарегистрирован: 10 мар 2002, 14:44
Откуда: Minsk

Сообщение Lynxer »

Я его понял так, что у него указатель хранится в переменной типа INT (вероятно, то же, что и встроенный тип int), и он хочет этот указатель преобразовать в указатель на char.

Короче, вопрос сформулирован нихрена не понятно. Не указан ни язык (для С и С++ решения могут быть разными), ни расшифровка типов (вдруг у тебя INT - это unsigned long long), ни желаемый результат преобразования. Или желаемый результат - это указатель лишь бы куда типа char* ? Тогда результат достигнут. Segmentation fault - правильная реакция системы на разыменовывание указателя черти куда.

Короче, kuza, иди в форум для чайников и читай тему "Настоятельно рекомендуется для прочтения".

Ответить