1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Такой вопрос. Впервый раз добавление записи в список проходит нормально, а когда начинаешь добавлять запись в список 2 раз, то список портиться.
Такой вопрос. Впервый раз добавление записи в список проходит нормально, а когда начинаешь добавлять запись в список 2 раз, то список портиться. Помогите плиз.
program ttts; uses crt; Type Symbol = record Surname: String; Name: String; { Fullname: String; Bhirtday: String; Pol: String; Identity: String; DateCreate: String; DateEnd: String; Adres: String;} end; type Item = ^Pointer; Pointer = record key: integer; str: Symbol; Next: Item; end; var f: file of Symbol; s: Symbol; t,tmp,list:Item; i:integer; Key:char;
procedure AddRecord; var tmp: Item; begin ClrScr; writeln(i); writeln('Vvedite name'); Readln(s.Name); writeln('vvedite fam'); Readln(s.Surname); if (list = nil) then begin GetMem(List, sizeof(Item)); tmp:= List; end else begin tmp:=List; while (tmp^.next <> nil) do tmp:=tmp^.next; GetMem(tmp^.Next, sizeof(Item)); tmp:=tmp^.next; end; tmp^.next:= Nil; inc(i); tmp^.key:=i; tmp^.str := s; writeln('OK'); end;
Обрати внимание, что Item - это указатель, а не запись (record). Особенно внимательно в строках с выделением памяти для следующего элемента списка GetMem.
Обрати внимание, что Item - это указатель, а не запись (record). Особенно внимательно в строках с выделением памяти для следующего элемента списка GetMem.
Отлично, спасибо большое за подсказку. Все дело было c выделением памяти. Помогла замена getMem на new
alex457, что тут такого продвинутого в твоем программировании? То, что ты не можешь список нормально организовать?? В следующий раз, пожалуйста, создавай тему в Задачах.
Тема переносится..
--------------------
я - ветер, я северный холодный ветер я час расставанья, я год возвращенья домой