pascalabcnet/TestSuite/pointers12.pas

43 lines
665 B
ObjectPascal
Raw Permalink Normal View History

2020-02-23 14:47:37 +03:00
type
TPerson = record
fam: string[15];
name: string[10];
id: integer;
end;
type
PPerson = ^TPerson;
2020-02-24 22:08:13 +03:00
var x: array[1..3] of TPerson;
2020-02-23 14:47:37 +03:00
p: PPerson;
2020-02-24 22:08:13 +03:00
procedure test1;
2020-02-23 14:47:37 +03:00
begin
2020-02-24 22:08:13 +03:00
var p1: PPerson := @x[1];
for var i := 1 to 1000 do
begin
p1^.name := 'abc';
assert(p1^.name = 'abc');
end;
end;
procedure test2;
begin
var p2: PPerson := @x[2];
for var i := 1 to 1000 do
begin
p2^.name := 'abc';
assert(p2^.name = 'abc');
end;
end;
begin
{$omp parallel sections}
begin
test1;
test2;
end;
2020-02-23 14:47:37 +03:00
p := @x[1];
p^.name := 'abc';
assert(p^.name = 'abc');
2020-02-24 22:08:13 +03:00
p := @x[2];
p^.name := 'def';
assert(p^.name = 'def');
2020-02-23 14:47:37 +03:00
end.