Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Указатель на переменную 
:(
    Опции темы
Devorior
Дата 26.12.2003, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 559
Регистрация: 1.8.2002
Где: Обнинск

Репутация: нет
Всего: 3



есть переменная Item типа Variant
в процедуре CopyMemory надо сделать указатель на Item,
не могу допереть как это сделать bored.gif

Код

Destination := HeapAlloc(
   FHeapHandle, 0, SizeOf(AnyType));
  CopyMemory(Destination,Item,SizeOf(Item));

PM MAIL ICQ   Вверх
Illusion Dolphin
Дата 26.12.2003, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 36
Всего: 63



а "^Item" не помогаетconfused.gif


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
Devorior
Дата 26.12.2003, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 559
Регистрация: 1.8.2002
Где: Обнинск

Репутация: нет
Всего: 3



не помогает sad.gif
PM MAIL ICQ   Вверх
<Spawn>
Дата 26.12.2003, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Попробуй так:
Код
CopyMemory(Destination,@Item,SizeOf(Item));




--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Belij
Дата 26.12.2003, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 19.12.2003

Репутация: нет
Всего: нет



дык это тоже не помогает - выводится потом ересь какая-то по этому адресу....

PM MAIL   Вверх
<Spawn>
Дата 26.12.2003, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Значит что то не то делаешь, специально решил проверить:

Код
procedure TForm1.Button1Click(Sender: TObject);
var
 Test: Variant;
 Destination: PVariant;
begin
 Test:= 10;
 GetMem(Destination, SizeOf(Variant));
 CopyMemory(Destination, @Test, SizeOf(Variant));
 ShowMessage(Destination^);
end;



--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Belij
Дата 26.12.2003, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 19.12.2003

Репутация: нет
Всего: нет



<Spawn>, я делал так
Destination := HeapAlloc(
FHeapHandle, 0, SizeOf(AnyType));
Destination^ := Item;
но мне сказали, что Destination^ := Item так делать некорректно, нужно через CopyMemory,
и я писал так как ты советовал, в итоге при выводе элемента списка (см. тему "Как организовать структуру"), выводится всякая ересь....
эту тему, что начал Devorior, идет в рамках вышеуказанной...
и это решение мне не помогло =(((((
PM MAIL   Вверх
<Spawn>
Дата 26.12.2003, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Так зачем тебе HeapAlloc??? Юзай GetMem:

Код
 GetMem(Destination, SizeOf(Variant));



--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Belij
Дата 26.12.2003, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 19.12.2003

Репутация: нет
Всего: нет



да вот по условию задачи, у меня строится очередь на базе гибридного списка, то есть в очереди хранятся указатели на данные, данные различных типов (byte, word, ..). Так вот прямое присвоение сказали делать нельзя...HeapAlloc я делаю, так как очередь саму строю на heapе.....
а в чем принципиальное различие?
у меня потом при выводе элементов вместо чисел символы рисуются всякие, типа содержимое памяти...

Это сообщение отредактировал(а) Belij - 26.12.2003, 16:11
PM MAIL   Вверх
MPak
Дата 29.12.2003, 22:30 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Belij @ 26.12.2003, 16:07)
да вот по условию задачи, у меня строится очередь на базе гибридного списка, то есть в очереди хранятся указатели на данные, данные различных типов (byte, word, ..). Так вот прямое присвоение сказали делать нельзя...HeapAlloc я делаю, так как очередь саму строю на heapе.....
а в чем принципиальное различие?
у меня потом при выводе элементов вместо чисел символы рисуются всякие, типа содержимое памяти...

Если это не очередное задание какогото сумашедшего
препода то лучше было бы огласить задние полностью....
не забывая что на х86 byte & word обрабатываются дольше
чем на Int, чтобы понять целесообразность использования
Variant.

а вообще всю жизнь было примерно так

var Destonation: PVaraint

New(Destonation)
CopyMemory......

впрочем я такой процедуры (CopyMemory) на помню....
поэтому если она не стандартная и не учитывает особенности
работы с Varaint можно огрести проблем по самое нехочу
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

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

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0534 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.