Access Violation при обращении к переменной-члену класса

Тема в разделе "WASM.BEGINNERS", создана пользователем Army, 16 окт 2007.

  1. Army

    Army New Member

    Публикаций:
    0
    Регистрация:
    6 сен 2007
    Сообщения:
    1
    В общем, так. Класс представляет собой матрицу.
    Вот объявление класса:
    Код (Text):
    1. TMatrix = class
    2.     Element: array of array of integer;
    3.     high: integer;
    4.     width: integer;
    5.     constructor Create(NewHigh: integer; NewWidth: integer);
    6.     function GetElement(i,j: integer): integer;
    7.     procedure SetElement(i,j: integer;Value: integer);
    8.     function GetHigh: integer;
    9.     procedure SetHigh(NewHigh: integer);
    10.     function GetWidth: integer;
    11.     procedure SetWidth(NewWidth: integer);
    12.     function Mult(var SecondMatrix: TMatrix): boolean; overload;
    13.     procedure Mult(Number: integer); overload;
    14.     function AddMatrix(var SecondMatrix: TMatrix): boolean;
    15.   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 (динамический массив-матрица)?
     
  2. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    1. класс как создаёте?
    2. на Delphi желательно использовать конструкции with;
    3. до второго SetLength() как добрались, если первый не выделил память?
     
  3. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    что-то я не понял а что такое А?
     
  4. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.347
    не в тему: высота - height
     
  5. dermatolog

    dermatolog Member

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    406
    Адрес:
    Екатеринбург
    Army
    Убери из жирных строчек "A."