Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
1-1242808942
Unknown user
2009-05-20 12:42
2010.03.21
Интересный код


15-1262449871
NailMan
2010-01-02 19:31
2010.03.21
Как сделать залипающий курсор мышки у края десктопа


1-1240570370
MultIfleX
2009-04-24 14:52
2010.03.21
Адрес вызывающего функцию


1-1242222408
Гарик
2009-05-13 17:46
2010.03.21
Справка WinHelp в Дельфи 7


2-1263609315
Делфиец
2010-01-16 05:35
2010.03.21
Есть ли метод оперделения какой контрол в фокусе





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский