Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.03.2014, 22:24   #1
woojin
Пользователь
 
Регистрация: 20.10.2013
Сообщений: 32
По умолчанию access violation при сложении AnsiString

всем привет!!!

имеется тип
Код:
const
  ElementsArrayLength = 35;

type
  PTElement = ^TElement;
  TElement = packed record
    start: integer;
    stop: integer;
    count: integer;
    function GetString: AnsiString;
  end;

  PTElementsArray = ^TElementsArray;
  TElementsArray = array[0..ElementsArrayLength] of TElement;

  PTElements = ^TElements;
  TElements = packed record
    index: integer;
    Element: TElementsArray;
  end;

.......................

function TElement.GetString: AnsiString;
begin
  Result := IntToStr(start) + IntToStr(stop);
end;

.......................

function MatrixFill(numbers: AnsiString): TElements;
var
  i, count_inc: integer;
  dig1, dig2: integer;
  tmp, tmpStartStop: AnsiString;
  Position: integer;

begin
  tmp := numbers;
  Position := 0;

  repeat
    dig1 := StrToInt(tmp[1]);
    dig2 := StrToInt(tmp[2]);
    count_inc := 1;
    for i := Position downto 0 do
       begin
         tmpStartStop := Result.Element[i].GetString;      <========= тут возникает AV при повторном вызове данной функции
         if (Result.Element[i].start = dig1) and (Result.Element[i].stop = dig2) then
            begin
              count_inc := Result.Element[i].count + 1;
              break;
            end;
       end;
    Result.Element[Position].start := dig1;
    Result.Element[Position].stop := dig2;
    Result.Element[Position].count := count_inc;
    Result.index := Position;
    delete(tmp, 1, 1);
    Inc(Position);
  until Length(tmp) = 1;
end;
и есть исходник рисования кривой Безье b.pas.txt

вопрос собственно в том, почему если не вызывать процедуру рисования кривой, то функция TElement.GetString
отрабатывает на ура сколько угодно раз
но если вызвать рисование, то данная функция вылетает с ошибкой "First chance exception at $004052ED. Exception class $C0000005 with message 'access violation at 0x004052ed: read of address 0x3f7ffffc'."

подскажите что делать?
woojin вне форума Ответить с цитированием
Старый 06.03.2014, 00:29   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

а зачем дебагер вырезали из иде?
eval вне форума Ответить с цитированием
Старый 06.03.2014, 01:13   #3
woojin
Пользователь
 
Регистрация: 20.10.2013
Сообщений: 32
Вопрос

Цитата:
Сообщение от eval Посмотреть сообщение
а зачем дебагер вырезали из иде?
в смысле ВЫРЕЗАЛИ?
woojin вне форума Ответить с цитированием
Старый 06.03.2014, 01:18   #4
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

а чего тогда не пользуетесь?
eval вне форума Ответить с цитированием
Старый 06.03.2014, 01:28   #5
woojin
Пользователь
 
Регистрация: 20.10.2013
Сообщений: 32
По умолчанию

пользуюсь но я в адресации ни чего не понимаю
по этому и решил спросить тут
woojin вне форума Ответить с цитированием
Старый 06.03.2014, 01:41   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

http://www.gunsmoker.ru/2009/05/access-violation.html
eval вне форума Ответить с цитированием
Старый 06.03.2014, 14:18   #7
woojin
Пользователь
 
Регистрация: 20.10.2013
Сообщений: 32
Хорошо

Цитата:
Сообщение от eval Посмотреть сообщение
спасибо - изучу
woojin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при создании матрицы (access violation) Svejk Помощь студентам 3 24.08.2013 14:30
Access Violation при работе с многомерными массивами hon Общие вопросы Delphi 2 01.06.2013 23:08
Access Violation при .Create.BitMap YaMolekula Общие вопросы Delphi 1 28.05.2011 13:42
Access violation при выполнении Bernarditto C++ Builder 5 04.11.2010 14:25
access violation при создании обьекта goog Общие вопросы Delphi 12 11.01.2009 20:33