Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.03.18;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.037 c
15-1172275784
koha
2007-02-24 03:09
2007.03.18
как и кому на вас жаловаться?


11-1150669782
AndrewHz
2006-06-19 02:29
2007.03.18
WindowsXP.Manifest


11-1150927801
[e]Bu$ter
2006-06-22 02:10
2007.03.18
ComboBox: странно выглядит при использовании mainfest a


2-1172484319
Sid-Max
2007-02-26 13:05
2007.03.18
Протоколирование !!!


2-1172175709
Lonix
2007-02-22 23:21
2007.03.18
сохранение текста в Edit





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский