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

 
 
> Прочитать значение по известному адресу.
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
Ответов
Troll
сообщение May 12 2011, 13:58
Сообщение #2


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

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



Цитата(Палыч @ May 6 2011, 19:32) *
Можно сделать так
Код
p= *(void **)param;
спасибо. То что надо.


Цитата(Палыч @ May 6 2011, 19:32) *
но, такая мешанина типов как у Вас, наводит на мысль, что структура ПО и взаимодействие между отдельными частями программы плохо продуманы

ПО уже есть. Надо лишь добавить несколько строк...
Не писать же все с нуля sm.gif

Спасибо за помощь.


--------------------
Hemos Pasado
Go to the top of the page
 
+Quote Post



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

 


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


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