Форум: "Основная";
Текущий архив: 2003.04.07;
Скачать: [xml.tar.bz2];
ВнизПомогите разобраться с указателем на массив... Найти похожие ветки
← →
любитель (2003-03-26 09:29) [0]Пытаюсь получить доступ к массиву через указатель:
var
A:array [1..10] of real;
p:^real;
i:integer;
...
p:=@A;
...
for i:=1 to 10 do
Form1.Canvas.TextOut(10,10+i,FloatToStr((p+i)^));
Компилятор пишет ошибку в последней строке:
Operator not applicable to this operand type
Вопрос простой, на разобраться не могу.
Спасибо заранее!
← →
Smithson (2003-03-26 09:47) [1]p+i здесь нельзя, это не си. В DOS версии можно было делать Inc(P), в Win32 это тоже стремно.
Опиши P как ^array of real
← →
Юрий Зотов (2003-03-26 09:57) [2]А почему в Win32 стремно?
p:=@A;
for i:=1 to 10 do
begin
with Canvas do TextOut(10, Font.Height * i, FloatToStr(p^));
Inc(p)
end;
Только зачем такие извраты? FloatToStr(A[i]) не годится?
← →
MBo (2003-03-26 10:01) [3]здесь можно просто
Canvas.TextOut(10,10+i,FloatToStr(a[i]));
Если почему-то есть желание работать с указателями извращенным образом:
PReal(Integer(p)+(i-1)*sizeOf(real))^
или на каждом шаге Inc(p) - будет смещаться на размер базового типа и Canvas.TextOut(10,10+i,FloatToStr(p^));
← →
любитель (2003-03-26 10:19) [4]Всем спасибо!!!
← →
Smithson (2003-03-26 10:41) [5]Ну тормоз я, тормоз... :-))
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.04.07;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c