Форум: "Начинающим";
Текущий архив: 2010.03.21;
Скачать: [xml.tar.bz2];
Вниззапись в память по смещению Найти похожие ветки
← →
fford (2010-01-20 10:57) [0]Здравствуйте!
мне надо в функцию передать параметром указатель на массив
type
pInt64=^Int64;
procedure foo(size:Integer; data:pInt64);
....
подскажите как его сформировать?
я делаю примерно такvar p:pInt64;
i:Integer;
begin
GetMem(p,10*SizeOf(Int64));
for i:=0 to 9 do
p[i]:=0;
foo(10,p);
...
End;
но компилятор ругается на строку p[i]:=0
Array type required
если сделать как (p+i*sizeof(Int64))^:=0;
то ругается
Operator not applicable to this operand type
подскажите как его заполнить то ?
← →
Медвежонок Пятачок © (2010-01-20 11:07) [1]p^
Inc(p)
← →
Сергей М. © (2010-01-20 11:11) [2]Чем тебе тип
array of Int64
не угодил ?
← →
Sha © (2010-01-20 11:12) [3]или
type
Int64Array = array [0..256*1024*1024 - 2] of Int64;
pInt64Array = ^Int64Array;
var
p: pInt64Array;
← →
fford (2010-01-20 11:23) [4]
> Чем тебе тип array of Int64 не угодил ?
функция из библиотеки сторонней
и там вот так передается параметр
объявлен тип
TTUInt64 = Int64;
PTUInt64 = ^TUInt64;
и в процедуру так и передается
массив как переменная типа PTUInt64
← →
fford (2010-01-20 11:35) [5]я сделал так
var
p:Array[0..9] of TTUInt64;
begin
....
for i:=0 to 9 do
p[i]:=0;
foo(9,PTUInt64(addr(p[0])))
← →
Anatoly Podgoretsky © (2010-01-20 11:39) [6]> fford (20.01.2010 10:57:00) [0]
Приведи сначала к числу, числа можно складывать, а потом к указателю, указатели нельзя складывать, можно складывать только указатели на CHAR
← →
Sha © (2010-01-20 11:40) [7]Спросил одно, а надо другое.
← →
fford (2010-01-20 15:13) [8]
> Спросил одно, а надо другое.
вроде именно это и спрашивал :)
может ты не так понял
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.03.21;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c