PDA

Просмотр полной версии : работа с указателями



Ушаков Николай
02.07.2007, 17:11
если кто использовал указатели, подскажите, как увеличить указатель на какую то переменную величину?

например
ptr: POINTER TO WORD;
i: INT;

ptr := ptr + 2; (* работает нормально *)
ptr := ptr + i; (* не катит - говорит что не может сконвертить INT to POINTER *)
как же передвигать указатель, циклом что ли?

Nekit
02.07.2007, 18:51
Все работает просто прибавлять надо не INT а DWORD. Например так:

VAR
df : ARRAY[0..3] OF WORD;
pDF: POINTER TO WORD;
dwIndex: DWORD:=1;
END_VAR

pDF := ADR(df[0]);
pDF := pDF + dwIndex;

И все.

Ушаков Николай
03.07.2007, 12:34
спасибо, заработало :)