我收到一个我不明白的错误。我正在尝试为 pascal 中的数组元素分配一个值。
function TestingThing() : Integer;
type
IntegerArray = array[0..$effffff] of Integer;
PIntegerArray = ^IntegerArray;
var
I: Integer;
D: PIntegerArray;
begin
for I := 0 to 5 do
D[ I ] := I;
end;
这给了我一个错误
D[I] := I
Error: Incompatible types: got "LongInt" expected "IntegerArray"
D
是一个指向整数数组的指针,它不是像您期望的那样指向单个整数的指针。
因此,当您执行
D[I]
时,您正在对 D
进行索引,并且结果元素是一个数组,并且您无法将值分配给数组,因此会出现错误。
您需要:
取消引用
D
:
D^[ I ] := I;
或者,您需要将
D
更改为指向数组中第一个 PInteger
的 Integer
,然后 D[I]
将按预期工作。