Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.18;
Скачать: CL | DM;

Вниз

Каст от одного типа к другому   Найти похожие ветки 

 
Bogdan1024 ©   (2007-02-26 12:37) [0]

Есть функция, которая принимает как аргумент:
type TReal1DArray = array of real;
Как передать функции мой массив?
var a: array[0..8191] of real;
Нужно как-то кастануть его? А как?


 
clickmaker ©   (2007-02-26 12:42) [1]

var a: TReal1DArray;

SetLength(a, 8192);


 
Bogdan1024 ©   (2007-02-26 13:33) [2]

Не, так не интересно, у меня просто уже есть массив a с данными, если я создам массив b:TReal1DArray и буду перегонять туда данные из массива а, то это будет как-то не круто.


 
clickmaker ©   (2007-02-26 13:35) [3]


> [2] Bogdan1024 ©   (26.02.07 13:33)

а откуда он у тебя есть?


 
Elen ©   (2007-02-26 13:47) [4]


> Bogdan1024 ©   (26.02.07 13:33) [2]

Адрес передавай в процедуру на массив.


 
deus krid   (2007-02-26 14:26) [5]

немогу понять в чем проблема. наведу упрощенный пример. объявляешь:

function MyMegaFunc(p: array of real; ...): ...;
begin
...
end;


и вызываеш эту функцию с любым массивом.

хотя лучше сделать как сказал Elen: обьявить тип массива, создать на него ссылочный тип и обьявить параметр функции этим типом и "@" тебе в помощь при вызове =)


 
Sapersky   (2007-02-26 15:19) [6]

Два наиболее простых варианта:
1) Использовать TReal1DArray вместо var a: array[0..8191] of real; в своей программе.
2) Переделать функцию под var a: array[0..8191] of real или
PRealDArr = ^TRealDArr;
TRealDArr = array[0..0] of Real;
(придётся отдельно передавать в неё длину массива)

Адрес передавай в процедуру на массив.

А если процедура захочет (а она наверняка захочет) узнать длину массива?

function MyMegaFunc(p: array of real; ...): ...;
и вызываеш эту функцию с любым массивом.


Будет копирование.


 
Elen ©   (2007-02-26 16:20) [7]


> А если процедура захочет (а она наверняка захочет) узнать
> длину массива?

...то его можно передать дополнительным параметром.


 
Anatoly Podgoretsky ©   (2007-02-27 00:28) [8]

> deus krid  (26.02.2007 14:26:05)  [5]

Это уже третий тип массива, про которые автор не спрашивал.


 
Anatoly Podgoretsky ©   (2007-02-27 00:29) [9]

> Bogdan1024  (26.02.2007 12:37:00)  [0]

В общем никак, это разные по структуре структуры данных, остальное только фокусы.



Страницы: 1 вся ветка

Текущий архив: 2007.03.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.051 c
15-1171980330
oldman
2007-02-20 17:05
2007.03.18
Программа "Налогоплательщик 2006 v10.35"


3-1167132492
Руслан56
2006-12-26 14:28
2007.03.18
Как мою программу зделать установочной ???


15-1172222616
Floppy
2007-02-23 12:23
2007.03.18
Вторая ось на Висту


15-1172060034
Prohodil Mimo
2007-02-21 15:13
2007.03.18
А портит ли мобила дискету, если находится рядом? :о)


15-1172191674
vasIZmax
2007-02-23 03:47
2007.03.18
О "миллионе долларов"...