| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Указатель на переменную |
| Автор: Devorior 26.12.2003, 13:17 | ||
| есть переменная Item типа Variant в процедуре CopyMemory надо сделать указатель на Item, не могу допереть как это сделать
|
| Автор: Illusion Dolphin 26.12.2003, 13:36 |
| а "^Item" не помогает |
| Автор: Devorior 26.12.2003, 13:40 |
| не помогает |
| Автор: <Spawn> 26.12.2003, 13:59 | ||
Попробуй так:
|
| Автор: Belij 26.12.2003, 14:03 |
| дык это тоже не помогает - выводится потом ересь какая-то по этому адресу.... |
| Автор: <Spawn> 26.12.2003, 14:10 | ||
Значит что то не то делаешь, специально решил проверить:
|
| Автор: Belij 26.12.2003, 15:23 |
| <Spawn>, я делал так Destination := HeapAlloc( FHeapHandle, 0, SizeOf(AnyType)); Destination^ := Item; но мне сказали, что Destination^ := Item так делать некорректно, нужно через CopyMemory, и я писал так как ты советовал, в итоге при выводе элемента списка (см. тему "Как организовать структуру"), выводится всякая ересь.... эту тему, что начал Devorior, идет в рамках вышеуказанной... и это решение мне не помогло =((((( |
| Автор: <Spawn> 26.12.2003, 15:59 | ||
Так зачем тебе HeapAlloc??? Юзай GetMem:
|
| Автор: Belij 26.12.2003, 16:07 |
| да вот по условию задачи, у меня строится очередь на базе гибридного списка, то есть в очереди хранятся указатели на данные, данные различных типов (byte, word, ..). Так вот прямое присвоение сказали делать нельзя...HeapAlloc я делаю, так как очередь саму строю на heapе..... а в чем принципиальное различие? у меня потом при выводе элементов вместо чисел символы рисуются всякие, типа содержимое памяти... |
| Автор: MPak 29.12.2003, 22:30 | ||
Если это не очередное задание какогото сумашедшего препода то лучше было бы огласить задние полностью.... не забывая что на х86 byte & word обрабатываются дольше чем на Int, чтобы понять целесообразность использования Variant. а вообще всю жизнь было примерно так var Destonation: PVaraint New(Destonation) CopyMemory...... впрочем я такой процедуры (CopyMemory) на помню.... поэтому если она не стандартная и не учитывает особенности работы с Varaint можно огрести проблем по самое нехочу |