реклама на сайте
подробности

 
 
> Прочитать значение по известному адресу.
Troll
сообщение May 6 2011, 12:45
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 104
Регистрация: 30-06-05
Из: С-Петербург
Пользователь №: 6 406



Приветствую.

Вопрос в следующем.

имеется указатель на структуру данных.
void * my_struct;

этому указателю присваивается значение адреса памяти;

есть функция void f(int param);
Внутри функции f необходимо получить значение по адресу, хранящемуся в my_struct.

Для этого через "param" передаю адрес указателя my_struct.
f((int)&my_struct)

Внутри функции
void f(int param) {
void *p;
...
}

Проще говоря должно p == my_struct.
И вот с получением значения внутри функции, ничего не получается.
Компилятор все время ругается на несоответствие типов.


Подскажите, пожалуйста, как это сделать.

PS можно, конечно сделать указатель my_struct глобальным и не париться (в общем сейчас так и есть).
но вопрос возник и хочется его решить.


--------------------
Hemos Pasado
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение May 6 2011, 15:36
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Troll @ May 6 2011, 16:45) *
Внутри функции f необходимо получить значение по адресу, хранящемуся в my_struct.
Подскажите, пожалуйста, как это сделать.

Получить что-либо из структуры, имея только указатель типа void не получится. Нужен именно указатель на структуру.
Go to the top of the page
 
+Quote Post
Палыч
сообщение May 6 2011, 15:50
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(aaarrr @ May 6 2011, 19:36) *
Получить что-либо из структуры, имея только указатель типа void не получится. Нужен именно указатель на структуру.
Ну, это - Вы слегка погорячились. Получить можно всё, что хочешь...
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 6 2011, 15:54
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Палыч @ May 6 2011, 19:50) *
Ну, это - Вы слегка погорячились. Получить можно всё, что хочешь...

Поле неизвестной структуры ну никак нельзя.

Но таки да, погорячился, т.к. my_struct, значение которого нужно получить, - это void *. В любом случае кошмарное нагромождение.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 23:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.02022 секунд с 7
ELECTRONIX ©2004-2016