0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 6
1

При работе с символами адрес вместо адреса иероглифы, а с символьными массивами вобще ошибки.

03.10.2012, 00:41. Показов 1495. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
/*
1) int a;
int *b=&a;
cout<<b<<endl;
2) char a;
char *b=&a;
cout<<b;
*/
Надо просто выдать адреса переменных. При работе с числами всё нормас.
При работе с символами адрес вместо адреса иероглифы, а с символьными массивами вобще ошибки.

Добавлено через 7 минут
Кароче рачно я всё сформулировал, лучше на простом примере покажите:
в символьном массиве вывести адрес допустим второго символа.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.10.2012, 00:41
Ответы с готовыми решениями:

Inet Explorer при обнаружении ошибки вместо описания ошибки выдает иероглифы
Начал изучение ASP. Inet Explorer при обнаружении ошибки вместо описания ошибки выдает иероглифы......

Ошибки при работе с массивами
В результате некоих вычислений получаю два массива чисел, используя которые хочу построить график....

Ошибки памяти при работе с массивами
помогите пожалуста, программа запускается нормально но при нажатии кнопки выбивает ошибку....

При работе с программами на русском языке, вместо кирилллицы отображает "иероглифы"
При инсталяции чего-либо, либо работы с программами на русском языке, вместо русского языка...

2
5496 / 4891 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
03.10.2012, 01:36 2
Лучший ответ Сообщение было отмечено StreL0k как решение

Решение

C++
1
2
3
char a;
char *b = &a; 
cout << (void*)b << endl;
Добавлено через 6 минут
Дело в том, что cout понимает указaтель на char, как указатель на строку. Поэтому будет выводить содержимое памяти, начиная с адреса b, пока не встрерит 0, что для него является символом окончания строки. Поэтому, для получения адреса, содержащегося в указателе на char, нужно привести указатель к типу void.
Для символьного массива:
C++
1
2
3
char arr[3] = {'a', 'b', 'c'};
cout << (void*)&(arr[1]) << endl;
cout << (void*)(arr + 1) << endl;
1
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 6
03.10.2012, 17:20  [ТС] 3
Спасиб
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.10.2012, 17:20
Помогаю со студенческими работами здесь

Что произойдет, если вместо IP-адреса указан IP-адрес одного из интерфейсов шлюза
Что произойдет, если вместо логического IP-адреса получателя в заголовке IP-пакета указан IP-адрес...

На 7 иероглифы как иероглифы а на XP вместо них квадраты
В программе есть Caption состоящий из китайских иероглифов, на семерке все нормально, а вот на XP...

Иероглифы при работе с базой данных!
Здравствуйте! На главной странице есть 2 текста - первый который был прописан в HTML коде, а...

При создании справки (hpj) иероглифы вместо текста
Создаю справку для Delphi,вместо текста иероглифы

Вместо русского текста - иероглифы, при переносе сайта на другой хост.
При переносе своего сайта, контент которого на русском языке, на другой хостинг (зарубежный)...

Иероглифы вместо символов при перенаправлении вывода из командной строки в Label
Создаю процесс командной строки и пытаюсь вывести в Label все то, что ввожу в командной строке....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru