Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
_KUL
3 / 3 / 0
Регистрация: 14.05.2013
Сообщений: 28
#1

Присвоить Указателю адрес из массива Char - C++

14.05.2013, 05:30. Просмотров 635. Ответов 2
Метки нет (Все метки)

Например есть такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
using namespace std;
 
int main()
{
    int a = 123456789;
    int *sa = &a;
    char b[7];
    cout << sa << " - ";
    cout << ++sa <<  endl;
    cin >> b;
    cout << "b , address - " << &b << " Value - "<< b << endl;
    sa = (int*)b;
    cout << sa;
    return 0;
}
Почему указателю sa присваивается адрес переменной b, а не её содержимое?
Т.е. если я сделаю sa = (int*)0x28ffa1; то sa будет ссылаться на адрес. А если я хочу, чтобы пользователь с клавиатуры ввёл адрес куда должен ссылаться указатель?

Суть интереса в том, чтобы посмотреть что в тех байтах, которые хранят int переменной a. Проблема в том, что умный язык С++ при действии sa++ увеличит адрес на 4 байта, а хочется на 1 и посмотреть что в этой ячейки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2013, 05:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Присвоить Указателю адрес из массива Char (C++):

Как лучше присвоить указателю на указатель адрес массива - C++
Во первых, как ЛУЧШЕ присвоить указателю на указатель адрес массива. int num = {1,3,5,7,6,7,8,1,0,9}; int **ptr = &amp;num; Так...

Присвоить указателю конкретный адрес - C++
Есть переменная типа str.Допустим там хранится строка &quot;5a32d8&quot;.Как это значение присвоить указателю. Т.е. чтобы указатель указывал на...

Указателю на базовый класс присвоить адрес производного класса - C++
class Point { public: Point(float a=0, float b=0) { x=a; y=b; } protected: float x; float y; };

Надо указателю на long int присвоить значение указателя на char - C++
//есть указатель unsigned char* p_to_char = somthing; //и указатель unsigned long int* p_to_int; //надо p_to_int присвоить...

Не получается присвоить значение элементу массива указателей типа char *a[3] - C++
В попытках разобраться с массивами, указателями, массивами указателей и т.п. написал вот такой код: int main() { char *a = {...

Присвоить указателю значение, пример из интернета - C++
Добрый вечер. В интернете находил парочку таких примеров: 1.) int *x; cout&lt;&lt;*x; *x=100; 2.)

2
Croessmah
Эксперт CЭксперт С++
13406 / 7556 / 853
Регистрация: 27.09.2012
Сообщений: 18,590
Записей в блоге: 3
Завершенные тесты: 1
14.05.2013, 06:24 #2
Цитата Сообщение от _KUL Посмотреть сообщение
увеличит адрес на 4 байта, а хочется на 1 и посмотреть что в этой ячейки.
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <iomanip>
 
int main(){ 
    int number=-1;
    unsigned char * p=(unsigned char*)&number;  
    for(int i=0;i<sizeof(int);++i,++p)
        std::cout<<std::setbase(16)<<(unsigned int)*p<<" ";
    std::cout<<std::endl;
}
0
_KUL
3 / 3 / 0
Регистрация: 14.05.2013
Сообщений: 28
14.05.2013, 06:54  [ТС] #3
Спасибо!
Блин, такая же идея была, но выходили кракозябры, не мог понять почему, а оказалось нужно приведение типов было сделать (unsigned int)*p ...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2013, 06:54
Привет! Вот еще темы с ответами:

Не получается присвоить значение указателю на функцию - C++
В строке 26 говорит, что не может конвертировать тип. Что неправильно? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; ...

Двумерный массив указателей присвоить другому указателю - C++
char *tp = { &quot;bb&quot;, &quot;vv&quot;, &quot;zz&quot;, &quot;kk&quot;, &quot;&quot; }; char ***mp = tp; // вот здесь ошибка что нужно прописать чтоб...

Присвоение указателю на char значения int - C++
доброе время суток уважаемые пользователи как можно присвоить int значение char *'у .int имеет размер 4 байта, и указатель на char...

Вывод адреса по указателю на char в std::cout - C++
Есть такая вот функция. void Char(char type){ char c,*vc=&amp;c; cout&lt;&lt;setw(8); cin&gt;&gt;c; cout&lt;&lt;type &lt;&lt;setw(8)&lt;&lt;c &lt;&lt;setw(11)&lt;&lt;hex&lt;&lt;c ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru