![]() |
|
Модераторы: bsa |
![]()
|
|
| trupca |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 22.7.2008 Репутация: нет Всего: нет |
вообщем есть это:
как имея доступ только к ptr узнать адреса x, y и z? иначе говоря нужно получить из ptr аналог &x, &y и &z. извинте, понимаю вопрос глупый, но я очень крепко сел на мель и без пинка сняться не получится |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
x -> p[0]
y -> p[1] z -> p[2] |
|||
|
||||
| trupca |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 22.7.2008 Репутация: нет Всего: нет |
нафиг мне смещение? я вот что писал: как имея доступ только к ptr узнать адреса x, y и z? иначе говоря нужно получить из ptr аналог &x, &y и &z. на всякий случай оставлю это здесь. адресом люди обычно называют место расположения объекта в памяти. вот пример адреса где хранится x: 0x7fff08679208. Добавлено через 3 минуты и 21 секунду опять же, на всякий случай, скажу по другому. как для ptr[0] получить 0x7fff08679208? |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
trupca, а что ты понимаешь под "адресом" массива? адрес переменной, в которой хранится указатель на начало массива или адрес начала массива? Если первое, то ты рискуешь вообще не получить его никогда. А вот если второе (оно и имеет смысл), то мой ответ именно то, что тебе нужно.
Кстати, причем тут смещение? Может тебе стоит почитать книжку про указатели и массивы? |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 4 Всего: 39 |
ptr[0] = 0x7fff08679208; -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
А где здесь смещение? Действительно, ну что стоит проверить:
И задуматься: почему это так? Всё таки, из ptr получить значения x, y, z (это переменные со значениями адресов соответствующих массивов) или &x, &y и &z (то есть адреса переменных x, y, z)? -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| trupca |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 22.7.2008 Репутация: нет Всего: нет |
можно переписать так:
если у нас есть строка "x" на которую ссылается указатель (точнее у нас их два - одно это имя этой переменной, а второе это сохранённая копия этого указателя в массиве указателей) то как работая с этим указателем узнать его значение? то есть как узнать местоположение первого элемента массива "x" в памяти работая с ptr? но уже это неважно. потому что ответ уже был и я его не понял. не понял я его из-за того, что уж слишком полагался на своё знание (о_0) ц++. что было зря - увидев ptr[0] (привет, bsa!) то есть переменную с адресом первого элемента массива "x" из char'ов, ц++ убеждённый в том, что я хочу всенепременно разыменовать данный указатель, в неудержимом порыве энтузиазма печатал на экран си-строку, тогда как моё желание было куда скромнее - мне нужно было распечатать его значение. вот собственно я и понял что же мне нужно... как это сделать? как распечатать значение которое лежит в ptr[0] не прибегая к си-функциям? |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
||||
|
||||
| akizelokro |
|
|||
![]() Крокодил ![]() ![]() Профиль Группа: Участник Сообщений: 761 Регистрация: 30.7.2007 Репутация: 1 Всего: 5 |
Небось понедельник сегодня? И утро понедельника?
-------------------- a = a + b; b = a - b; a = a - b; |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
akizelokro, небольшой совет, читайте сначала вопрос (даже если сегодня и понедельник), а уже потом пишите ответ.
Это сообщение отредактировал(а) volatile - 15.7.2013, 10:51 |
|||
|
||||
| akizelokro |
|
|||
![]() Крокодил ![]() ![]() Профиль Группа: Участник Сообщений: 761 Регистрация: 30.7.2007 Репутация: 1 Всего: 5 |
пусть выбирает, что ему нужно, тогда я пойму, что ему нужно было. -------------------- a = a + b; b = a - b; a = a - b; |
|||
|
||||
| Wuffur |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 22.7.2007 Репутация: нет Всего: нет |
Вообще-то для указателя нужно указать тип значения по адресу, чтобы печаталось то, что нужно. И в C, и в С++. А так только адрес указателя на первый элемент массива из трёх строк. Первый элемент массива
Адрес
Это сообщение отредактировал(а) Wuffur - 15.7.2013, 12:01 |
||||||
|
|||||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Wuffur, всё не то. Решение привёл volatile.
-------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| trupca |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 22.7.2008 Репутация: нет Всего: нет |
всем спасибо. вопрос решён. отдельное спасибо тем кто понял что мне всё таки надо и помог
Это сообщение отредактировал(а) trupca - 16.7.2013, 12:33 |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |