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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2010, 10:22   #1
TRIZER
Студент
Пользователь
 
Аватар для TRIZER
 
Регистрация: 13.11.2009
Сообщений: 65
Сообщение Ошибка "Acces violation" в чем может быть причина

Здравствуйте, извините если не в тот раздел, но не нашел куда писать

Возникает ошибка Access violation at 0x7c90eddc: write of address 0x00030ff4



Вот код, в котором предполагаю есть ошибка

Код:
...
type

 TLexemeType=(ltArithOperation,ltNumber,ltVar,ltFunc,ltLogicalOperaion,ltEnd); //Есть предположение что это каким то образом вызывает ошибку

type Factor = record
FType:TLexemeType;
index:integer;
Lexeme:string[32];
end;

type TFunc= record
N:byte;
Lexeme:string[32];
end;

type TTerm = array[0..10] of Factor;

...

var
  Form1: TForm1;
  FuncList: array of TFunc;
  Errors: array of string;

...

procedure AddError(str:string);
begin
setlength(Errors,length(Errors));
Errors[Length(Errors)-1]:=str;
end;


function GetFactor(Str:string):TTerm;
var
i,i1,index:integer;
Term:TTerm;
begin
//перед заполнением Term я его очищаю от мусора ... который не знаю откуда берется, возможно есть какие то другие способы очистки ... (если есть - то подскажите плиз)
for i:=0 to length(Term) do
begin
Term[i].FType:=ltEnd;
Term[i].index:=0;
Term[i].Lexeme:='';
end;
... //Тут код который заполняет Term значениями, проверил отладчиком - все заполняется правильно, в соответствии с условиями задачи
GetFactor:=Term;
end;


procedure TForm1.Button1Click(Sender: TObject);
var i:integer;T:TTerm;
begin
Memo1.Clear;
//Ошибка возникает в последующей строке, то есть при присвоении переменной T значения функции GetFactor
T:=GetFactor(Edit1.Text);
end;
Я начинающий ... и думаю что то с выделением памяти в общем ... если можно - объясните нубу как избегать подобных ошибок, если нужно - могу выложить полный код
TRIZER вне форума Ответить с цитированием
Старый 02.05.2010, 12:03   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Код:
for i:=0 to length(Term) do
меняем на
Код:
for i:=0 to length(Term) - 1 do
BOBAH13 вне форума Ответить с цитированием
Старый 02.05.2010, 12:10   #3
TRIZER
Студент
Пользователь
 
Аватар для TRIZER
 
Регистрация: 13.11.2009
Сообщений: 65
По умолчанию

Мне ОООЧЕНЬ стыдно
Спасибо за помощь
TRIZER вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помотрите в чем может быть ошибка zizu Помощь студентам 2 26.04.2010 10:16
Память не может быть "read" pilot34 Общие вопросы C/C++ 7 21.12.2009 01:06
Ошибка "Acess violation" и с чем её есть? Alex Cones Общие вопросы Delphi 4 25.05.2009 10:06
"View" не может содержать параметр БД Acces slips SQL, базы данных 1 09.12.2008 02:24
Память не может быть "read" Alewteena Безопасность, Шифрование 3 27.08.2008 05:16