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

Вниз

<B>Указатели</B>   Найти похожие ветки 

 
DenKop ©   (2002-09-22 02:20) [0]

Делаю так:

var
P1:pointer;
IntPtr:^Smallint;
........

begin

........
IntPtr:=P1;
for i:=1 to 100 do
begin
Buf:=IntPtr^;
.........
IntPtr^:=Buf;
IntPtr:=IntPtr+SizeOf(SmallInt); {здесь баг}
end;
........

end;

Хочу сместить указатель на 4 байта вправо, но компилятор
матится следующей месагой:
"Operator not applicable to this operand type"

В общем про задачу:

В P1 читаю из файла 100 значений SmallInt и хочу с ними
чего-то сделать. После этого нужно скинуть их обртано в файл.
Т.к. файл может быть большого размера, решил читать по 400байт
в память и там сними чего-то делать. Ну и чтобы обратится к
каждому из значений блока P1, хочу изменить значение указателя,
но как я уже говорил компилятор кричит о недопустимом действии
с данным типом.

Заранее благодарен.


 
kex86 ©   (2002-09-22 02:27) [1]

А как определен buf ?


 
MBo ©   (2002-09-22 06:24) [2]

К типизированным указателям можно применять операции Inc и Dec, при этом они смещаются на SizeOf указанного типа
Inc(IntPtr)
Inc(IncPtr,4)

Для нетипизированных можно так:
P:Pointer;

P:=Pointer(Cardinal(P)+SizeOf(Integer))


 
Юрий Зотов ©   (2002-09-22 11:55) [3]

А зачем такие навороты? Заведите обычный массив из 100 SmallInt, и спокойно работайте с ним. Без всяких указателей.

И еще: размер SmallInt - 2, а не 4 байта.


 
DenKop ©   (2002-09-24 22:25) [4]


> Юрий Зотов

Да, действительно. Спасибо, что заметили.

И про массив хорошо сказанно я как то не догадлся. Думаю будет намного проще. Пойду попробую.


> MBo, kex86


Думаю следует последовать совету Юрия Зотова.



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

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

Наверх




Память: 0.47 MB
Время: 0.012 c
1-20996
Демонов Е.В.
2002-09-25 14:13
2002.10.07
Вопрос Про TComponent


1-20968
Begin
2002-09-24 00:54
2002.10.07
Нужен совет по созданию компонента (если не жалко)


1-20986
Паша
2002-09-26 16:05
2002.10.07
Вопрос по FileMapping


14-21245
ZetaX
2002-09-10 16:21
2002.10.07
нужен апдейт к C++ BUILDER 6


1-21000
greenrul
2002-09-26 18:18
2002.10.07
Быстрое нахождение определенного пикселя в TPicture/Bitmap