Например код приведенный ниже возвращает разные результаты на 2007 и 2009 Делфи
program array_error_test;
{$APPTYPE CONSOLE}
uses
SysUtils,
StrUtils,
Classes;
procedure DoMain;
const
Count = 5;
type
RecType = record
AnString: PAnsiChar;
end;
var
RecArr: array of RecType;
I: Integer;
SomeStrings: TStringList;
begin
SetLength(RecArr, Count);
SomeStrings := TStringList.Create;
try
for I := 0 to Length(RecArr) - 1 do
begin
SomeStrings.Add(DupeString(IntToStr(I), 10));
RecArr[I].AnString := PAnsiChar(AnsiString(SomeStrings[I]));
end;
for I := 0 to Length(RecArr) - 1 do
WriteLn(RecArr[I].AnString);
finally
SomeStrings.Free;
end;
end;
begin
DoMain;
ReadLn;
end.
Комментариев нет:
Отправить комментарий