В общем, так. Класс представляет собой матрицу. Вот объявление класса: Код (Text): TMatrix = class Element: array of array of integer; high: integer; width: integer; constructor Create(NewHigh: integer; NewWidth: integer); function GetElement(i,j: integer): integer; procedure SetElement(i,j: integer;Value: integer); function GetHigh: integer; procedure SetHigh(NewHigh: integer); function GetWidth: integer; procedure SetWidth(NewWidth: integer); function Mult(var SecondMatrix: TMatrix): boolean; overload; procedure Mult(Number: integer); overload; function AddMatrix(var SecondMatrix: TMatrix): boolean; end; Вот реализация конструктора: constructor TMatrix.Create(NewHigh: integer;NewWidth: integer); var i,j: integer; begin SetLength(A.Element,NewWidth); // выделяем память под строку матрицы for i:=0 to NewWidth-1 do SetLength(A.Element,NewHigh); // поэлементно выделяем память под столбец матрицы randomize; for i:=0 to NewWidth-1 do for j:=0 to NewHigh-1 do Element[i,j] := Random(NewWidth+NewHigh+1); // и случайным образом заполняем массив end; Компилятор выдает Access Violation при трассировке мест, выделенных жирным шрифтом. Спрашивается: 1) Почему? 2) Что можно сделать, сохраняя структуру Element (динамический массив-матрица)?
1. класс как создаёте? 2. на Delphi желательно использовать конструкции with; 3. до второго SetLength() как добрались, если первый не выделил память?